]> code.delx.au - offlineimap/commitdiff
Merge branch 'master' of ssh://jpgarch@complete.org/~jpgarch/git/offlineimap
authorJohn Goerzen <jgoerzen@complete.org>
Fri, 8 Aug 2008 18:08:08 +0000 (13:08 -0500)
committerJohn Goerzen <jgoerzen@complete.org>
Fri, 8 Aug 2008 18:08:08 +0000 (13:08 -0500)
offlineimap.conf
offlineimap/threadutil.py

index de1a9d9c9bdc407e42172cce897395de8a5fc4e1..b6ed990adac85e45300e38e09a722c11feeb2d4c 100644 (file)
@@ -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
 
index 5f537086370b24fcf2aa512c98f849b4dd9a574a..599aa8dba313c54e090667bddbd1fd0f49b6da4d 100644 (file)
@@ -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."""