You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by ri...@apache.org on 2009/06/26 22:04:21 UTC

svn commit: r788845 - /felix/trunk/framework/src/main/java/org/apache/felix/framework/util/ThreadGate.java

Author: rickhall
Date: Fri Jun 26 20:04:21 2009
New Revision: 788845

URL: http://svn.apache.org/viewvc?rev=788845&view=rev
Log:
Properly monitor timeout on ThreadGate for Framework.waitForStop().
(FELIX-1279)

Modified:
    felix/trunk/framework/src/main/java/org/apache/felix/framework/util/ThreadGate.java

Modified: felix/trunk/framework/src/main/java/org/apache/felix/framework/util/ThreadGate.java
URL: http://svn.apache.org/viewvc/felix/trunk/framework/src/main/java/org/apache/felix/framework/util/ThreadGate.java?rev=788845&r1=788844&r2=788845&view=diff
==============================================================================
--- felix/trunk/framework/src/main/java/org/apache/felix/framework/util/ThreadGate.java (original)
+++ felix/trunk/framework/src/main/java/org/apache/felix/framework/util/ThreadGate.java Fri Jun 26 20:04:21 2009
@@ -43,9 +43,19 @@
     **/
     public synchronized void await(long timeout) throws InterruptedException
     {
+        long start = System.currentTimeMillis();
+        long remaining = timeout;
         while (!m_open)
         {
-            wait(timeout);
+            wait(remaining);
+            if (timeout > 0)
+            {
+                remaining = timeout - (System.currentTimeMillis() - start);
+                if (remaining <= 0)
+                {
+                    break;
+                }
+            }
         }
     }
 }
\ No newline at end of file