arlut.csd.ganymede.client
Class DeathWatcherThread

java.lang.Object
  |
  +--java.lang.Thread
        |
        +--arlut.csd.ganymede.client.DeathWatcherThread
All Implemented Interfaces:
java.lang.Runnable

class DeathWatcherThread
extends java.lang.Thread

Client-side background thread to handle force disconnect commands from the server. We need this thread because jdk 1.2 has a bug where RMI callbacks are not privileged to interact with the Swing thread. By creating a thread to handle forced logouts ourselves, we can have an RMI callback pass a message to this thread (which has local privileges), which can then throw up a dialog explaining about being disconnected, etc.

When run, this thread waits for die() to be called, whereupon it creates an ExitThread to actually shut down the client.


Field Summary
(package private)  boolean debug
           
(package private)  java.lang.String message
           
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
DeathWatcherThread()
           
 
Method Summary
 void die(java.lang.String message)
          This method causes the DeathWatcherThread to kick off the end-of-the-world process.
 void run()
           
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, 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

debug

final boolean debug
See Also:
Constant Field Values

message

java.lang.String message
Constructor Detail

DeathWatcherThread

public DeathWatcherThread()
Method Detail

run

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

die

public void die(java.lang.String message)
This method causes the DeathWatcherThread to kick off the end-of-the-world process.