Package net.sf.colossus.util
Class ViableEntityManager
java.lang.Object
net.sf.colossus.util.ViableEntityManager
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
FieldsModifier and TypeFieldDescriptionprivate static boolean
private static final Logger
private static Object
private static WeakHashMap<Object,
String> private static int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic int
static void
static void
unregister
(Object viableEntity) static void
-
Field Details
-
LOGGER
-
debug
private static boolean debug -
viableEntities
-
waiting
private static int waiting -
mutex
-
-
Constructor Details
-
ViableEntityManager
public ViableEntityManager()
-
-
Method Details
-
register
-
unregister
-
getWaitingCnt
public static int getWaitingCnt() -
waitUntilAllGone
public static void waitUntilAllGone()
-