summaryrefslogtreecommitdiff
path: root/java/src/Ice/Application.java
diff options
context:
space:
mode:
authorMark Spruiell <mes@zeroc.com>2002-10-23 18:33:53 +0000
committerMark Spruiell <mes@zeroc.com>2002-10-23 18:33:53 +0000
commitec8412afc2677ba1fb4075628ab93fedfc2a8f7c (patch)
tree0cba46569e3aa148bc60404f975542167558ce12 /java/src/Ice/Application.java
parentWasn't supposed to be checked-in (diff)
downloadice-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.java29
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;