diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-08-31 17:20:15 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-08-31 17:36:53 +0100 |
commit | a7591ef34ce70ff1d7aa9362d7473e6f16fbd10f (patch) | |
tree | 0f96138d632e4361837dd0425730bf07588cffbd /lib/prserv/serv.py | |
parent | a38164620ebdc770690c5f39ff9ed69d3f82719e (diff) | |
download | bitbake-contrib-a7591ef34ce70ff1d7aa9362d7473e6f16fbd10f.tar.gz |
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 <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/prserv/serv.py')
-rw-r--r-- | lib/prserv/serv.py | 5 |
1 files changed, 4 insertions, 1 deletions
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)) |