comparison piecrust/commands/builtin/serving.py @ 224:4f00bb99400e

serve: Fix exiting the server with `CTRL+C` when the SSE response is running.
author Ludovic Chabant <ludovic@chabant.com>
date Tue, 03 Feb 2015 18:51:30 -0800
parents d7a548ebcd58
children c2ca72fb7f0b
comparison
equal deleted inserted replaced
223:7decf00eee47 224:4f00bb99400e
1 import logging 1 import logging
2 from piecrust.serving import Server 2 from piecrust.serving import Server, _sse_abort
3 from piecrust.commands.base import ChefCommand 3 from piecrust.commands.base import ChefCommand
4 4
5 5
6 logger = logging.getLogger(__name__) 6 logger = logging.getLogger(__name__)
7 7
46 use_reloader=ctx.args.use_reloader) 46 use_reloader=ctx.args.use_reloader)
47 app = server.getWsgiApp() 47 app = server.getWsgiApp()
48 48
49 if ctx.args.wsgi == 'werkzeug': 49 if ctx.args.wsgi == 'werkzeug':
50 from werkzeug.serving import run_simple 50 from werkzeug.serving import run_simple
51 run_simple(host, port, app, 51 try:
52 threaded=True, 52 run_simple(host, port, app,
53 use_debugger=debug, 53 threaded=True,
54 use_reloader=ctx.args.use_reloader) 54 use_debugger=debug,
55 use_reloader=ctx.args.use_reloader)
56 finally:
57 _sse_abort.set()
55 58
56 elif ctx.args.wsgi == 'gunicorn': 59 elif ctx.args.wsgi == 'gunicorn':
57 from gunicorn.app.base import BaseApplication 60 from gunicorn.app.base import BaseApplication
58 61
59 class PieCrustGunicornApplication(BaseApplication): 62 class PieCrustGunicornApplication(BaseApplication):