From 51c4ee234385a9c664702dd7b23fe76272861c49 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 16 Jun 2017 08:34:19 +0530 Subject: [PATCH] Use an RLock in the completion worker, just in case --- src/calibre/gui2/tweak_book/completion/worker.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/tweak_book/completion/worker.py b/src/calibre/gui2/tweak_book/completion/worker.py index 0a4be9cf9a..4fb0c966aa 100644 --- a/src/calibre/gui2/tweak_book/completion/worker.py +++ b/src/calibre/gui2/tweak_book/completion/worker.py @@ -7,7 +7,7 @@ __license__ = 'GPL v3' __copyright__ = '2014, Kovid Goyal ' import cPickle, os, sys -from threading import Thread, Event, Lock +from threading import Thread, Event, RLock from Queue import Queue from contextlib import closing from collections import namedtuple @@ -37,7 +37,7 @@ class CompletionWorker(Thread): self.current_completion_request = None self.latest_completion_request_id = None self.request_count = 0 - self.lock = Lock() + self.lock = RLock() def launch_worker_process(self): from calibre.utils.ipc.server import create_listener @@ -159,6 +159,7 @@ class CompletionWorker(Thread): self.worker_process.kill() return self.worker_process.returncode + _completion_worker = None @@ -175,6 +176,7 @@ def run_main(func): with closing(Client(address, authkey=key)) as control_conn, closing(Client(address, authkey=key)) as data_conn: func(control_conn, data_conn) + Result = namedtuple('Result', 'request_id ans traceback query')