Commit cda7fe47 authored by Jim Fulton's avatar Jim Fulton

It's legal to call tpc_vote and tpc_finish multiple times.

Unfortutely, tpc_finish didn't handle this case correctly.
parent 6a451b31
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
""" """
# Do this portably in the face of checking out with -kv # Do this portably in the face of checking out with -kv
import string import string
__version__ = string.split('$Revision: 1.12 $')[-2:][0] __version__ = string.split('$Revision: 1.13 $')[-2:][0]
import ThreadLock, bpthread import ThreadLock, bpthread
import time, UndoLogCompatible import time, UndoLogCompatible
...@@ -213,6 +213,7 @@ class BaseStorage(UndoLogCompatible.UndoLogCompatible): ...@@ -213,6 +213,7 @@ class BaseStorage(UndoLogCompatible.UndoLogCompatible):
self._lock_acquire() self._lock_acquire()
try: try:
if transaction is not self._transaction: return if transaction is not self._transaction: return
try:
if f is not None: f() if f is not None: f()
u,d,e=self._ude u,d,e=self._ude
...@@ -222,6 +223,7 @@ class BaseStorage(UndoLogCompatible.UndoLogCompatible): ...@@ -222,6 +223,7 @@ class BaseStorage(UndoLogCompatible.UndoLogCompatible):
self._ude=None self._ude=None
self._transaction=None self._transaction=None
self._commit_lock_release() self._commit_lock_release()
finally:
self._lock_release() self._lock_release()
def _finish(self, tid, u, d, e): def _finish(self, tid, u, d, e):
......
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