From 136237b7dc99d7470a714fdbe146bcce93d36a2a Mon Sep 17 00:00:00 2001 From: Nicolas Sebrecht Date: Wed, 11 May 2011 20:55:54 +0200 Subject: [PATCH] refactoring: simplify the semaphorewait logic The semaphorewait()/waitforthread() logic is usefull for IMAP starting connections. We actually use it in imapserver only. This patch removes the over-engineered factorized methods. It tend to simplify the code by cleaning out a chain of two direct calls with no other processes. Reviewed-by: Sebastian Spaeth Signed-off-by: Nicolas Sebrecht --- offlineimap/folder/Base.py | 5 ----- offlineimap/imapserver.py | 3 ++- offlineimap/threadutil.py | 4 ---- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/offlineimap/folder/Base.py b/offlineimap/folder/Base.py index a5fd242..608d361 100644 --- a/offlineimap/folder/Base.py +++ b/offlineimap/folder/Base.py @@ -37,11 +37,6 @@ class BaseFolder(object): false otherwise. Probably only IMAP will return true.""" return 0 - def waitforthread(self): - """For threading folders, waits until there is a resource available - before firing off a thread. For all others, returns immediately.""" - pass - def getcopyinstancelimit(self): """For threading folders, returns the instancelimitname for InstanceLimitedThreads.""" diff --git a/offlineimap/imapserver.py b/offlineimap/imapserver.py index e5c9c18..7703879 100644 --- a/offlineimap/imapserver.py +++ b/offlineimap/imapserver.py @@ -300,7 +300,8 @@ class IMAPServer: to copy messages, then have them all wait for 3 available connections. It's OK if we have maxconnections + 1 or 2 threads, which is what this will help us do.""" - threadutil.semaphorewait(self.semaphore) + self.semaphore.acquire() + self.semaphore.release() def close(self): # Make sure I own all the semaphores. Let the threads finish diff --git a/offlineimap/threadutil.py b/offlineimap/threadutil.py index fe4b5fd..24486e2 100644 --- a/offlineimap/threadutil.py +++ b/offlineimap/threadutil.py @@ -42,10 +42,6 @@ def semaphorereset(semaphore, originalstate): for i in range(originalstate): semaphore.release() -def semaphorewait(semaphore): - semaphore.acquire() - semaphore.release() - class threadlist: def __init__(self): self.lock = Lock()