[PATCH] threadutil: explicitly import get_ident from thread
Nicolas Sebrecht
nicolas.s-dev at laposte.net
Wed May 11 19:36:50 BST 2011
The python module thread is the low-level module we should avoid to use in favor
of threading. We still need it to support old python because Thread.ident
doesn't exist before python 2.6:
http://docs.python.org/library/threading.html#threading.Thread.ident
Make it clear we should avoid it.
Signed-off-by: Nicolas Sebrecht <nicolas.s-dev at laposte.net>
---
offlineimap/imapserver.py | 9 ++++-----
offlineimap/threadutil.py | 5 ++---
offlineimap/ui/Blinkenlights.py | 4 ++--
3 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/offlineimap/imapserver.py b/offlineimap/imapserver.py
index bfe3796..e5c9c18 100644
--- a/offlineimap/imapserver.py
+++ b/offlineimap/imapserver.py
@@ -19,7 +19,7 @@
from offlineimap import imaplibutil, imaputil, threadutil, OfflineImapError
from offlineimap.ui import getglobalui
from threading import Lock, BoundedSemaphore
-import thread
+from thread import get_ident # python < 2.6 support
import time
import hmac
import socket
@@ -167,11 +167,10 @@ class IMAPServer:
# Try to find one that previously belonged to this thread
# as an optimization. Start from the back since that's where
# they're popped on.
- threadid = thread.get_ident()
imapobj = None
for i in range(len(self.availableconnections) - 1, -1, -1):
tryobj = self.availableconnections[i]
- if self.lastowner[tryobj] == threadid:
+ if self.lastowner[tryobj] == get_ident():
imapobj = tryobj
del(self.availableconnections[i])
break
@@ -179,7 +178,7 @@ class IMAPServer:
imapobj = self.availableconnections[0]
del(self.availableconnections[0])
self.assignedconnections.append(imapobj)
- self.lastowner[imapobj] = thread.get_ident()
+ self.lastowner[imapobj] = get_ident()
self.connectionlock.release()
return imapobj
@@ -266,7 +265,7 @@ class IMAPServer:
self.connectionlock.acquire()
self.assignedconnections.append(imapobj)
- self.lastowner[imapobj] = thread.get_ident()
+ self.lastowner[imapobj] = get_ident()
self.connectionlock.release()
return imapobj
except Exception, e:
diff --git a/offlineimap/threadutil.py b/offlineimap/threadutil.py
index cef2195..fe4b5fd 100644
--- a/offlineimap/threadutil.py
+++ b/offlineimap/threadutil.py
@@ -19,7 +19,7 @@
from threading import Lock, Thread, BoundedSemaphore
from Queue import Queue, Empty
import traceback
-import thread
+from thread import get_ident # python < 2.6 support
import sys
from offlineimap.ui import getglobalui
@@ -149,7 +149,6 @@ class ExitNotifyThread(Thread):
exited and to provide for the ability for it to find out why."""
def run(self):
global exitthreads, profiledir
- self.threadid = thread.get_ident()
try:
if not profiledir: # normal case
Thread.run(self)
@@ -164,7 +163,7 @@ class ExitNotifyThread(Thread):
except SystemExit:
pass
prof.dump_stats( \
- profiledir + "/" + str(self.threadid) + "_" + \
+ profiledir + "/" + str(get_ident()) + "_" + \
self.getName() + ".prof")
except:
self.setExitCause('EXCEPTION')
diff --git a/offlineimap/ui/Blinkenlights.py b/offlineimap/ui/Blinkenlights.py
index 257dca2..2160100 100644
--- a/offlineimap/ui/Blinkenlights.py
+++ b/offlineimap/ui/Blinkenlights.py
@@ -18,7 +18,7 @@
from threading import RLock, currentThread
from offlineimap.ui.UIBase import UIBase
-import thread
+from thread import get_ident # python < 2.6 support
class BlinkenBase:
"""This is a mix-in class that should be mixed in with either UIBase
@@ -103,7 +103,7 @@ class BlinkenBase:
UIBase.threadExited(s, thread)
def gettf(s):
- threadid = thread.get_ident()
+ threadid = get_ident()
accountname = s.getthreadaccount()
s.tflock.acquire()
--
1.7.5.1.354.g761178
More information about the OfflineIMAP-project
mailing list