[Checkins] SVN: zc.demostorage2/trunk/src/zc/demostorage2/__init__.py Added a modifiedInVersion to work around a really annoying ZEO bug. :(

Jim Fulton jim at zope.com
Wed Jan 23 17:42:17 EST 2008


Log message for revision 83146:
  Added a modifiedInVersion to work around a really annoying ZEO bug. :(
  
  Changed the way lastInvalidations are handled.
  

Changed:
  U   zc.demostorage2/trunk/src/zc/demostorage2/__init__.py

-=-
Modified: zc.demostorage2/trunk/src/zc/demostorage2/__init__.py
===================================================================
--- zc.demostorage2/trunk/src/zc/demostorage2/__init__.py	2008-01-23 22:37:00 UTC (rev 83145)
+++ zc.demostorage2/trunk/src/zc/demostorage2/__init__.py	2008-01-23 22:42:17 UTC (rev 83146)
@@ -35,6 +35,10 @@
         for meth in ('getSize', 'history', 'isReadOnly', 'sortKey',
                      'tpc_transaction'):
             setattr(self, meth, getattr(changes, meth))
+
+        lastInvalidations = getattr(changes, 'lastInvalidations', None)
+        if lastInvalidations is not None:
+            self.lastInvalidations = lastInvalidations
     
         self._oid = max(u64(changes.new_oid()), 1l << 63)
         self._lock = threading.RLock()
@@ -60,18 +64,6 @@
             return self.base.getTid(oid)
 
     @synchronized
-    def lastInvalidations(self, size):
-        n = 0
-        for v in self.changes.lastInvalidations(size):
-            n += 1
-            yield v
-
-        size -= n
-        if size > 0:
-            for v in self.base.lastInvalidations(size):
-                yield v
-
-    @synchronized
     def lastTransaction(self):
         t = self.changes.lastTransaction()
         if t == z64:
@@ -171,6 +163,10 @@
             return
         return self.changes.tpc_vote(transaction)
 
+    # Gaaaaaa! Work around ZEO bug.
+    def modifiedInVersion(self, oid):
+        return ''
+
 class ZConfig:
 
     def __init__(self, config):



More information about the Checkins mailing list