[Zodb-checkins] CVS: ZODB3/ZEO - ClientStorage.py:1.92
Jeremy Hylton
jeremy@zope.com
Wed, 9 Apr 2003 18:43:53 -0400
Update of /cvs-repository/ZODB3/ZEO
In directory cvs.zope.org:/tmp/cvs-serv24100
Modified Files:
ClientStorage.py
Log Message:
Speed up connection establishment.
Don't know what happened, but the tests started running very slowly
with Python2.3. Fixed by checking _ready at the start of the loop in
_wait() instead of at the bottom. Most of the time _ready is set by
the time we start, and no more I/O is going to occur until the client
connects; as a result, the tests always sat in pending() until it
timed out at 30 seconds.
=== ZODB3/ZEO/ClientStorage.py 1.91 => 1.92 ===
--- ZODB3/ZEO/ClientStorage.py:1.91 Wed Apr 9 18:31:51 2003
+++ ZODB3/ZEO/ClientStorage.py Wed Apr 9 18:43:52 2003
@@ -296,16 +296,15 @@
# If there is no mainloop running, this code needs
# to call poll() to cause asyncore to handle events.
while 1:
- cn = self._connection
- if cn is None:
+ if self._ready.isSet():
+ break
+ log2(INFO, "Wait for cache verification to finish")
+ if self._connection is None:
# If the connection was closed while we were
# waiting for it to become ready, start over.
return self._wait()
else:
- cn.pending(30)
- if self._ready.isSet():
- break
- log2(INFO, "Wait for cache verification to finish")
+ self._connection.pending(30)
def close(self):
"""Storage API: finalize the storage, releasing external resources."""