Commit b209919c authored by Jim Fulton's avatar Jim Fulton

Make mutating thread daemonic and stop it if there is an error in the

test thread.

Use with to simplify locking code.
parent 16fc41c3
......@@ -50,14 +50,12 @@ This tests tries to provoke this bug by:
... i = random.randint(0, nobs-1)
... if stop:
... return
... lock.acquire()
... try:
... with lock:
... conn2.root()[i].value += 1
... tm.commit()
... finally:
... lock.release()
... time.sleep(0)
>>> thread = threading.Thread(target=run)
>>> thread.setDaemon(True)
>>> thread.start()
- restarting the first client, and
......@@ -67,14 +65,14 @@ This tests tries to provoke this bug by:
>>> handler = zope.testing.loggingsupport.InstalledHandler(
... 'ZEO', level=logging.ERROR)
>>> for c in range(10):
>>> try:
... for c in range(10):
... time.sleep(.1)
... db = ZODB.DB(ZEO.ClientStorage.ClientStorage(addr, client='x'))
... _ = lock.acquire()
... try:
... wait_until("connected and we've caught up",
... lambda :
... db.storage.is_connected()
... with lock:
... @wait_until("connected and we've caught up", timeout=199)
... def _():
... return (db.storage.is_connected()
... and db.storage.lastTransaction()
... == db.storage._server.lastTransaction()
... )
......@@ -84,12 +82,11 @@ This tests tries to provoke this bug by:
... if conn.root()[i].value != conn2.root()[i].value:
... print 'bad', c, i, conn.root()[i].value,
... print conn2.root()[i].value
... finally:
... _ = lock.release()
... db.close()
... finally:
... stop = True
... thread.join(10)
>>> stop = True
>>> thread.join(10)
>>> thread.isAlive()
False
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment