Mercurial > piecrust2
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): |