From 44a8cf3feb829756c2d60efd23b2050bd2ad1ec1 Mon Sep 17 00:00:00 2001 From: Nicolas Sebrecht Date: Tue, 28 Jun 2016 02:14:20 +0200 Subject: [PATCH] threadutil: use 'with' statements for lock Improve code for waiting the accountThreads. Signed-off-by: Nicolas Sebrecht --- offlineimap/threadutil.py | 23 +++++++---------------- 1 file changed, 7 insertions(+), 16 deletions(-) diff --git a/offlineimap/threadutil.py b/offlineimap/threadutil.py index d5d08f8..29272db 100644 --- a/offlineimap/threadutil.py +++ b/offlineimap/threadutil.py @@ -50,33 +50,24 @@ class accountThreads(object): self.list = [] def add(self, thread): - self.lock.acquire() - try: + with self.lock: self.list.append(thread) - finally: - self.lock.release() def remove(self, thread): - self.lock.acquire() - try: + with self.lock: self.list.remove(thread) - finally: - self.lock.release() def pop(self): - self.lock.acquire() - try: - if not len(self.list): + with self.lock: + if len(self.list) < 1: return None return self.list.pop() - finally: - self.lock.release() def wait(self): - while 1: + while True: thread = self.pop() - if not thread: - return + if thread is None: + break thread.join()