[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