Commit f064ef36 authored by Shane Hathaway's avatar Shane Hathaway

Fixed problems with attempting to pack while a pack is already running.

parent 6003bd33
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
# may have a back pointer to a version record or to a non-version # may have a back pointer to a version record or to a non-version
# record. # record.
# #
__version__='$Revision: 1.60 $'[11:-2] __version__='$Revision: 1.61 $'[11:-2]
import struct, time, os, bpthread, string, base64, sys import struct, time, os, bpthread, string, base64, sys
from struct import pack, unpack from struct import pack, unpack
...@@ -1215,20 +1215,21 @@ class FileStorage(BaseStorage.BaseStorage, ...@@ -1215,20 +1215,21 @@ class FileStorage(BaseStorage.BaseStorage,
stop=`apply(TimeStamp, time.gmtime(t)[:5]+(t%60,))` stop=`apply(TimeStamp, time.gmtime(t)[:5]+(t%60,))`
if stop==z64: raise FileStorageError, 'Invalid pack time' if stop==z64: raise FileStorageError, 'Invalid pack time'
# Record pack time so we don't undo while packing
_lock_acquire()
try: try:
##################################################################
# Step 1, get index as of pack time that
# includes only referenced objects.
# Record pack time so we don't undo while packing
_lock_acquire()
locked=1
if self._packt != z64: if self._packt != z64:
# Already packing.
raise FileStorageError, 'Already packing' raise FileStorageError, 'Already packing'
self._packt=stop self._packt=stop
finally:
_lock_release() _lock_release()
locked=0
try:
##################################################################
# Step 1, get index as of pack time that
# includes only referenced objects.
packpos, maxoid, ltid = read_index( packpos, maxoid, ltid = read_index(
file, name, index, vindex, tindex, stop, file, name, index, vindex, tindex, stop,
read_only=1, read_only=1,
......
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