Package net.sf.colossus.util
Class ViableEntityManager
- java.lang.Object
-
- net.sf.colossus.util.ViableEntityManager
-
public class ViableEntityManager extends java.lang.Object
Keeps track of "viable entities", i.e. parts of the program for which it makes sense to have them living on their own. Viable entities so far are : - the game server part with it's subthreads, - the user Client with MasterBoard (e.g. as remote client) - the web server client The reason is, earlier each of them may at some point do System.exit(), even if one would have liked to keep one other part open. (for example, 3 local players -- if one was dead and you closed that MasterBoard, the whole application did exit. Now, each of those tells the ViableEntityManager "I'm done", and if the last one says so, THEN the System.exit() is actually executed. Or rather, nowadays, the main() thread can go on, come up with a menu again or something.- Author:
- Clemens Katzer
-
-
Field Summary
Fields Modifier and Type Field Description private static boolean
debug
private static java.util.logging.Logger
LOGGER
private static java.lang.Object
mutex
private static java.util.WeakHashMap<java.lang.Object,java.lang.String>
viableEntities
private static int
waiting
-
Constructor Summary
Constructors Constructor Description ViableEntityManager()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static int
getWaitingCnt()
static void
register(java.lang.Object viableEntity, java.lang.String name)
static void
unregister(java.lang.Object viableEntity)
static void
waitUntilAllGone()
-