diff options
Diffstat (limited to 'bitbake/lib/hashserv/__init__.py')
-rw-r--r-- | bitbake/lib/hashserv/__init__.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/bitbake/lib/hashserv/__init__.py b/bitbake/lib/hashserv/__init__.py index 86aa7e9de6..1d5e08ee5a 100644 --- a/bitbake/lib/hashserv/__init__.py +++ b/bitbake/lib/hashserv/__init__.py @@ -13,6 +13,7 @@ import logging import socketserver import queue import threading +import signal from datetime import datetime logger = logging.getLogger('hashserv') @@ -147,8 +148,14 @@ class ThreadedHTTPServer(HTTPServer): self.handlerthread.daemon = False self.handlerthread.start() + + signal.signal(signal.SIGTERM, self.sigterm_exception) super().serve_forever() + def sigterm_exception(self, signum, stackframe): + self.server_close() + os._exit(0) + def process_request_thread(self): while not self.quit: try: @@ -163,6 +170,7 @@ class ThreadedHTTPServer(HTTPServer): self.handle_error(request, client_address) finally: self.shutdown_request(request) + os._exit(0) def process_request(self, request, client_address): self.requestqueue.put((request, client_address)) @@ -208,6 +216,8 @@ def create_server(addr, dbname, prefix=''): cursor.execute('CREATE INDEX IF NOT EXISTS taskhash_lookup ON tasks_v2 (method, taskhash)') cursor.execute('CREATE INDEX IF NOT EXISTS outhash_lookup ON tasks_v2 (method, outhash)') - logger.info('Starting server on %s', addr) + ret = ThreadedHTTPServer(addr, Handler) + + logger.info('Starting server on %s\n', ret.server_port) - return ThreadedHTTPServer(addr, Handler) + return ret |