From a7591ef34ce70ff1d7aa9362d7473e6f16fbd10f Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 31 Aug 2017 17:20:15 +0100 Subject: prserv/serv: Send sentinel to stop handler thread Shutdown from SIGTERM currently has to wait for the handler thread to timeout. Add a sentinel value which triggers it to loop and allows for a quick exit. Signed-off-by: Richard Purdie --- lib/prserv/serv.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/prserv/serv.py b/lib/prserv/serv.py index a2da07227..6be78c82f 100644 --- a/lib/prserv/serv.py +++ b/lib/prserv/serv.py @@ -84,6 +84,8 @@ class PRServer(SimpleXMLRPCServer): except queue.Empty: self.table.sync_if_dirty() continue + if request is None: + continue try: self.finish_request(request, client_address) self.shutdown_request(request) @@ -103,7 +105,8 @@ class PRServer(SimpleXMLRPCServer): def sigterm_handler(self, signum, stack): if self.table: self.table.sync() - self.quit=True + self.quit() + self.requestqueue.put((None, None)) def process_request(self, request, client_address): self.requestqueue.put((request, client_address)) -- cgit 1.2.3-korg