[Zodb-checkins] CVS: ZODB3/ZEO - ClientStorage.py:1.110.2.7

Jeremy Hylton cvs-admin at zope.org
Sat Nov 22 00:06:41 EST 2003


Update of /cvs-repository/ZODB3/ZEO
In directory cvs.zope.org:/tmp/cvs-serv27378/ZEO

Modified Files:
      Tag: ZODB3-mvcc-2-branch
	ClientStorage.py 
Log Message:
Track new 4-tuple return value of loadEx().


=== ZODB3/ZEO/ClientStorage.py 1.110.2.6 => 1.110.2.7 ===
--- ZODB3/ZEO/ClientStorage.py:1.110.2.6	Wed Nov 19 22:22:40 2003
+++ ZODB3/ZEO/ClientStorage.py	Sat Nov 22 00:06:39 2003
@@ -575,7 +575,7 @@
         self._pickler.fast = 1 # Don't use the memo
 
         # XXX should batch these operations for efficiency
-        for oid, version, serial in self._cache.contents():
+        for oid, tid, version, serial in self._cache.contents():
             server.verify(oid, version, serial)
         self._pending_server = server
         server.endZeoVerify()
@@ -692,9 +692,9 @@
             for oid in oids:
                 self._tbuf.invalidate(oid, source)
         else:
-            # destination is '', so invalidate version and non-version
+            # destination is "", so invalidate version and non-version
             for oid in oids:
-                self._tbuf.invalidate(oid, destination)
+                self._tbuf.invalidate(oid, "")
         return tid, oids
 
     def history(self, oid, version, length=1, filter=None):
@@ -728,9 +728,9 @@
     def loadEx(self, oid, version):
         self._lock.acquire()    # for atomic processing of invalidations
         try:
-            triple = self._cache.load(oid, version)
-            if triple:
-                return triple
+            quad = self._cache.load(oid, version)
+            if quad:
+                return quad
         finally:
             self._lock.release()
 
@@ -746,19 +746,19 @@
             finally:
                 self._lock.release()
 
-            data, serial, tid = self._server.loadEx(oid, version)
+            data, serial, tid, ver = self._server.loadEx(oid, version)
 
             self._lock.acquire()    # for atomic processing of invalidations
             try:
                 if self._load_status:
-                    self._cache.store(oid, version, serial, tid, None, data)
+                    self._cache.store(oid, ver, serial, tid, None, data)
                 self._load_oid = None
             finally:
                 self._lock.release()
         finally:
             self._load_lock.release()
 
-        return data, serial, tid
+        return data, serial, tid, ver
 
     def loadNonCurrent(self, oid, tid):
         self._lock.acquire()
@@ -950,6 +950,7 @@
                     f(tid)
             finally:
                 self._lock.release()
+            # XXX Shouldn't this cache call be made while holding the lock?
             self._cache.setLastTid(tid)
 
             r = self._check_serials()




More information about the Zodb-checkins mailing list