net.sf.colossus.common
Class WhatNextManager.TimedJvmQuit

java.lang.Object
  extended by java.lang.Thread
      extended by net.sf.colossus.common.WhatNextManager.TimedJvmQuit
All Implemented Interfaces:
java.lang.Runnable
Enclosing class:
WhatNextManager

public static class WhatNextManager.TimedJvmQuit
extends java.lang.Thread

A demon thread which is started by triggerTimedQuit. It will then (currently) sleep 10 seconds, and if it is then still alive, do a System.exit(1) to terminate the JVM. If, however, the game shutdown proceeded successfully as planned, Start.main() will already have reached it's end and there should not be any other non-demon threads alive, so the JVM *should* terminate by itself cleanly. So, if this TimedJvmQuit strikes, it means the "clean shutdown" has somehow failed.


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
private static java.lang.String defaultName
           
private static java.util.logging.Logger LOGGER
           
private  java.lang.String name
           
private  long timeOutInSecs
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
WhatNextManager.TimedJvmQuit()
           
 
Method Summary
 void run()
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

LOGGER

private static final java.util.logging.Logger LOGGER

defaultName

private static final java.lang.String defaultName
See Also:
Constant Field Values

name

private final java.lang.String name

timeOutInSecs

private final long timeOutInSecs
See Also:
Constant Field Values
Constructor Detail

WhatNextManager.TimedJvmQuit

public WhatNextManager.TimedJvmQuit()
Method Detail

run

public void run()
Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread