Fix the broken thread debugging
Using threading._VERBOSE=1 is broken since python 2.6 till at least python 3.2, (http://bugs.python.org/issue4188) so we can't use it for our thread debugging. Remove the usage of threading._VERBOSE, and implement a "light thread debug log" that for now outputs information when a new thread is being registered and when it is being unregistered. I am sure we will be able to add more thread debugging information over the time. Besides '-d thread' this will re-enable the usage of -d 'all' for the most verbose debugging of all categories. Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de> Signed-off-by: Nicolas Sebrecht <nicolas.s-dev@laposte.net>
This commit is contained in:
parent
5c7d7ee445
commit
deab62fbd8
@ -21,6 +21,7 @@ Changes
|
||||
Bug Fixes
|
||||
---------
|
||||
|
||||
* Fix the offlineimap crash when invoking debug option 'thread'
|
||||
|
||||
Pending for the next major release
|
||||
==================================
|
||||
|
@ -226,8 +226,6 @@ class OfflineImap:
|
||||
ui.add_debug(type)
|
||||
if type.lower() == 'imap':
|
||||
imaplib.Debug = 5
|
||||
if type.lower() == 'thread':
|
||||
threading._VERBOSE = 1
|
||||
|
||||
if options.runonce:
|
||||
# FIXME: maybe need a better
|
||||
|
@ -89,11 +89,14 @@ class UIBase:
|
||||
(threading.currentThread().getName(),
|
||||
s.getthreadaccount(s), account)
|
||||
s.threadaccounts[threading.currentThread()] = account
|
||||
s.debug('thread', "Register new thread '%s' (account '%s')" %\
|
||||
(threading.currentThread().getName(), account))
|
||||
|
||||
def unregisterthread(s, thr):
|
||||
"""Recognizes a thread has exited."""
|
||||
if s.threadaccounts.has_key(thr):
|
||||
del s.threadaccounts[thr]
|
||||
s.debug('thread', "Unregister thread '%s'" % thr.getName())
|
||||
|
||||
def getthreadaccount(s, thr = None):
|
||||
if not thr:
|
||||
|
Loading…
Reference in New Issue
Block a user