Use a repeat call tracker which will properly report stack traces on any

repeat calls.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3072 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Michael Bayne
2004-08-13 21:18:39 +00:00
parent 79da3ac15c
commit fb6795fe37
@@ -1,5 +1,5 @@
// //
// $Id: GameManager.java,v 1.72 2004/07/10 01:32:54 mdb Exp $ // $Id: GameManager.java,v 1.73 2004/08/13 21:18:39 mdb Exp $
package com.threerings.parlor.game; package com.threerings.parlor.game;
@@ -8,6 +8,7 @@ import java.util.Arrays;
import java.util.Iterator; import java.util.Iterator;
import com.samskivert.util.IntervalManager; import com.samskivert.util.IntervalManager;
import com.samskivert.util.RepeatCallTracker;
import com.samskivert.util.StringUtil; import com.samskivert.util.StringUtil;
import com.threerings.util.Name; import com.threerings.util.Name;
@@ -657,12 +658,11 @@ public class GameManager extends PlaceManager
public void endGame () public void endGame ()
{ {
// TEMP: debug pending rating repeat bug // TEMP: debug pending rating repeat bug
if (_gameEndTrace != null) { if (_gameEndTracker.checkCall(
Log.warning("Requested to end already ended game " + "Requested to end already ended game " +
"[game=" + _gameobj.which() + "]."); "[game=" + _gameobj.which() + "].")) {
Thread.dumpStack(); return;
} }
_gameEndTrace = new Exception().getStackTrace();
// END TEMP // END TEMP
if (_gameobj.state != GameObject.IN_PLAY) { if (_gameobj.state != GameObject.IN_PLAY) {
@@ -981,7 +981,7 @@ public class GameManager extends PlaceManager
protected TickAIDelegateOp _tickAIOp; protected TickAIDelegateOp _tickAIOp;
/** TEMP: debugging the pending rating double release bug. */ /** TEMP: debugging the pending rating double release bug. */
protected StackTraceElement[] _gameEndTrace; protected RepeatCallTracker _gameEndTracker = new RepeatCallTracker();
/** A list of all currently active game managers. */ /** A list of all currently active game managers. */
protected static ArrayList _managers = new ArrayList(); protected static ArrayList _managers = new ArrayList();