diff options
author | Mark Spruiell <mes@zeroc.com> | 2002-10-23 18:33:53 +0000 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2002-10-23 18:33:53 +0000 |
commit | ec8412afc2677ba1fb4075628ab93fedfc2a8f7c (patch) | |
tree | 0cba46569e3aa148bc60404f975542167558ce12 /java/src/Ice/Application.java | |
parent | Wasn't supposed to be checked-in (diff) | |
download | ice-ec8412afc2677ba1fb4075628ab93fedfc2a8f7c.tar.bz2 ice-ec8412afc2677ba1fb4075628ab93fedfc2a8f7c.tar.xz ice-ec8412afc2677ba1fb4075628ab93fedfc2a8f7c.zip |
fix for deadlock
Diffstat (limited to 'java/src/Ice/Application.java')
-rw-r--r-- | java/src/Ice/Application.java | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/java/src/Ice/Application.java b/java/src/Ice/Application.java index 6bfce8c7647..6275fe86b7d 100644 --- a/java/src/Ice/Application.java +++ b/java/src/Ice/Application.java @@ -180,30 +180,37 @@ public abstract class Application _done = false; } - public synchronized void + public void run() { - communicator().shutdown(); - while(!_done) + synchronized(_doneMutex) { - try - { - wait(); - } - catch(InterruptedException ex) + communicator().shutdown(); + while(!_done) { + try + { + _doneMutex.wait(); + } + catch(InterruptedException ex) + { + } } } } - synchronized void + void done() { - _done = true; - notify(); + synchronized(_doneMutex) + { + _done = true; + _doneMutex.notify(); + } } private boolean _done; + private java.lang.Object _doneMutex = new java.lang.Object(); } private static String _appName; |