From 94255806cf0e79221aa25cb5ef9a8b610ba671be Mon Sep 17 00:00:00 2001 From: Sunil Mohan Adapa Date: Thu, 21 Feb 2019 11:47:46 -0800 Subject: [PATCH] web_server: Move shutdown handling to main This will keep web server de-coupled with service that want to shutdown on exit. Signed-off-by: Sunil Mohan Adapa Reviewed-by: James Valleroy --- plinth/__main__.py | 7 ++++++- plinth/web_server.py | 11 +++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/plinth/__main__.py b/plinth/__main__.py index 8cbab88ae..d6b472c8a 100644 --- a/plinth/__main__.py +++ b/plinth/__main__.py @@ -126,6 +126,11 @@ def adapt_config(arguments): setattr(cfg, argument_name, argument_value) +def on_web_server_stop(): + """Stop all other threads since web server is trying to exit.""" + setup.stop() + + def main(): """Intialize and start the application""" arguments = parse_arguments() @@ -173,7 +178,7 @@ def main(): setup.run_setup_in_background() web_server.init() - web_server.run() + web_server.run(on_web_server_stop) if __name__ == '__main__': diff --git a/plinth/web_server.py b/plinth/web_server.py index d2b06fc38..74ac3d211 100644 --- a/plinth/web_server.py +++ b/plinth/web_server.py @@ -23,7 +23,7 @@ import os import cherrypy -from . import cfg, log, module_loader, setup, web_framework +from . import cfg, log, module_loader, web_framework logger = logging.getLogger(__name__) @@ -89,13 +89,8 @@ def init(): cherrypy.engine.signal_handler.subscribe() -def on_server_stop(): - """Stop all other threads since web server is trying to exit.""" - setup.stop() - - -def run(): +def run(on_web_server_stop): """Start the web server and block it until exit.""" cherrypy.engine.start() - cherrypy.engine.subscribe('stop', on_server_stop) + cherrypy.engine.subscribe('stop', on_web_server_stop) cherrypy.engine.block()