/head: changeset 50

Fixed save() such that it will be atomic. If the program crashes while
writing, it is guaranteed to have either a complete copy of the old or
the new data.
This commit is contained in:
jgoerzen
2002-06-25 01:58:25 +01:00
parent 05d8f27955
commit 132a38bfce
4 changed files with 30 additions and 2 deletions

View File

@ -61,7 +61,7 @@ class LocalStatusFolder(BaseFolder):
file.close()
def save(self):
file = open(self.filename, "wt")
file = open(self.filename + ".tmp", "wt")
file.write(magicline + "\n")
for msg in self.messagelist.values():
flags = msg['flags']
@ -69,6 +69,7 @@ class LocalStatusFolder(BaseFolder):
flags = ''.join(flags)
file.write("%s:%s\n" % (msg['uid'], flags))
file.close()
os.rename(self.filename + ".tmp", self.filename)
def getmessagelist(self):
return self.messagelist

View File

@ -1,5 +1,5 @@
productname = 'OfflineIMAP'
versionstr = "1.0.1"
versionstr = "1.0.2"
versionlist = versionstr.split(".")
major = versionlist[0]