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)
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, 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:
- syncaccount(threads, config, accountname)
+
+
# Wait for the threads to finish.
threads.reset()