[Neo-report] r2708 jm - /trunk/neo/tests/__init__.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Apr 7 15:03:24 CEST 2011


Author: jm
Date: Thu Apr  7 15:03:23 2011
New Revision: 2708

Log:
tests: new ClusterPdb.sync method to place sync points

Modified:
    trunk/neo/tests/__init__.py

Modified: trunk/neo/tests/__init__.py
==============================================================================
--- trunk/neo/tests/__init__.py [iso-8859-1] (original)
+++ trunk/neo/tests/__init__.py [iso-8859-1] Thu Apr  7 15:03:23 2011
@@ -562,6 +562,12 @@ class ClusterPdb(object):
     def release(self, delay):
         os.write(self._w, pack('d', delay))
 
+    def sync(self):
+        """Sleep as long as another process acquires the lock"""
+        delay = self.acquire()
+        self.release(delay)
+        return delay
+
     def interaction(self, hooked, *args, **kw):
         delay = self.acquire() - time()
         try:
@@ -572,9 +578,7 @@ class ClusterPdb(object):
     def wait(self, test, timeout, period):
         end_time = time() + timeout
         while not test():
-            delay = self.acquire()
-            self.release(delay)
-            if time() > end_time + delay:
+            if time() > end_time + self.sync():
                 return False
             sleep(period)
         return True




More information about the Neo-report mailing list