Checkpointing work on mailbox deletion

This commit is contained in:
John Goerzen
2008-05-20 01:38:15 -05:00
parent fa766b61bc
commit f58ebe390d
2 changed files with 40 additions and 3 deletions

View File

@ -26,8 +26,8 @@ import re, os, os.path, offlineimap, sys
from ConfigParser import ConfigParser
from threading import *
def syncaccount(threads, config, accountname):
account = SyncableAccount(config, accountname)
def syncaccount(threads, config, accountname, folderhash, folderhashlock):
account = SyncableAccount(config, accountname, folderhash, folderhashlock)
thread = InstanceLimitedThread(instancename = 'ACCOUNTLIMIT',
target = account.syncrunner,
name = "Account sync %s" % accountname)
@ -36,11 +36,26 @@ def syncaccount(threads, config, accountname):
threads.add(thread)
def syncitall(accounts, config):
folderhash = {'___sem': Semaphore(0)}
folderhashlock = Lock()
currentThread().setExitMessage('SYNC_WITH_TIMER_TERMINATE')
ui = UIBase.getglobalui()
threads = threadutil.threadlist()
mbnames.init(config, accounts)
accountcout = 0
for accountname in accounts:
syncaccount(threads, config, accountname)
syncaccount(threads, config, accountname, folderhash, folderhashlock)
accountcount += 1
# Gather up folder info
for i in range(0, accountcount):
folderhash['___sem'].acquire()
# Now we can tally.
srcnames =
for accountname in accounts:
# Wait for the threads to finish.
threads.reset()