[Zope-Checkins] CVS: Zope/lib/python/Shared/DC/ZRDB - TM.py:1.8.16.1

Kapil Thangavelu k_vertigo@yahoo.com
Tue, 12 Mar 2002 15:02:21 -0500


Update of /cvs-repository/Zope/lib/python/Shared/DC/ZRDB
In directory cvs.zope.org:/tmp/cvs-serv30909

Modified Files:
      Tag: Zope-2_5-branch
	TM.py 
Log Message:
backport TM fixes from trunk



=== Zope/lib/python/Shared/DC/ZRDB/TM.py 1.8 => 1.8.16.1 ===
                 get_transaction().register(Surrogate(self))
                 self._begin()
-                self._registered=1
+                self._registered = 1
+                self._finalize = 0
             except: pass
 
     def tpc_begin(self, *ignored): pass
-    commit=tpc_abort=tpc_begin
+    commit=tpc_begin
 
     def _finish(self):
         self.db.commit()
@@ -46,13 +47,20 @@
     def _abort(self):
         self.db.rollback()
 
+    def tpc_vote(self, *ignored):
+        self._finalize = 1
+
     def tpc_finish(self, *ignored):
-        try: self._finish()
-        finally: self._registered=0
+
+        if self._finalize:	
+            try: self._finish()
+            finally: self._registered=0
 
     def abort(self, *ignored):
         try: self._abort()
         finally: self._registered=0
+
+    tpc_abort = abort
 
 class Surrogate: