fixed a major problem with locking in languages, thanks Dan McGee fr the help

This commit is contained in:
Massimo Di Pierro
2012-02-29 13:38:59 -06:00
parent 9c6eafab54
commit 02e7f38da7
7 changed files with 61 additions and 53 deletions
+6 -9
View File
@@ -172,25 +172,22 @@ class StorageList(Storage):
return self[key]
def load_storage(filename):
fp = open(filename, 'rb')
fp = None
try:
portalocker.lock(fp, portalocker.LOCK_EX)
fp = portalocker.LockFile(filename, 'rb')
storage = cPickle.load(fp)
portalocker.unlock(fp)
finally:
fp.close()
if fp: fp.close()
return Storage(storage)
def save_storage(storage, filename):
fp = open(filename, 'wb')
fp = None
try:
portalocker.lock(fp, portalocker.LOCK_EX)
fp = portalocker.LockFile(filename, 'wb')
cPickle.dump(dict(storage), fp)
portalocker.unlock(fp)
finally:
fp.close()
if fp: fp.close()
class Settings(Storage):