diff --git a/offlineimap.conf b/offlineimap.conf index de1a9d9..b6ed990 100644 --- a/offlineimap.conf +++ b/offlineimap.conf @@ -43,6 +43,10 @@ accounts = Test # greater than 1. To force it to synchronize only one account at a # time, set it to 1. # +# Note: if you are using autorefresh and have more than one account, +# you must set this number to be >= to the number of accounts you have; +# since any given sync run never "finishes" due to a timer, you will never +# sync your additional accounts if this is 1. maxsyncaccounts = 1 diff --git a/offlineimap/threadutil.py b/offlineimap/threadutil.py index 5f53708..599aa8d 100644 --- a/offlineimap/threadutil.py +++ b/offlineimap/threadutil.py @@ -18,8 +18,8 @@ from threading import * from StringIO import StringIO -from Queue import Queue -import sys, traceback, thread +from Queue import Queue, Empty +import sys, traceback, thread, time from offlineimap.ui import UIBase # for getglobalui() profiledir = None @@ -89,7 +89,7 @@ class threadlist: # Exit-notify threads ###################################################################### -exitthreads = Queue(5) +exitthreads = Queue(100) inited = 0 def initexitnotify(): @@ -112,8 +112,12 @@ def exitnotifymonitorloop(callback): """ global exitthreads while 1: # Loop forever. - callback(exitthreads.get(True)) - exitthreads.task_done() + try: + thrd = exitthreads.get(False) + callback(thrd) + exitthreads.task_done() + except Empty: + time.sleep(1) def threadexited(thread): """Called when a thread exits."""