diff options
author | Ziad Sawalha <gerrit@highbridgellc.com> | 2014-05-04 11:46:36 -0500 |
---|---|---|
committer | Ziad Sawalha <gerrit@highbridgellc.com> | 2014-05-04 11:47:22 -0500 |
commit | 52014fa25858e8c1157ce939e43f7211bb9ac291 (patch) | |
tree | e0b7c3c17ce553b137913bbc6112a23621170b1e | |
parent | 8611f5c7cb9459d48d6412ab8146d7bcb8f26733 (diff) | |
download | bottle-52014fa25858e8c1157ce939e43f7211bb9ac291.tar.gz |
Make sure to monkey_patch with eventlet
Similar logic to gevent.
-rw-r--r-- | bottle.py | 17 |
1 files changed, 12 insertions, 5 deletions
@@ -19,8 +19,9 @@ __author__ = 'Marcel Hellkamp' __version__ = '0.13-dev' __license__ = 'MIT' -# The gevent server adapter needs to patch some modules before they are imported -# This is why we parse the commandline parameters here but handle them later +# The gevent and eventlet server adapters need to patch some modules before +# they are imported. This is why we parse the commandline parameters here but +# handle them later if __name__ == '__main__': from optparse import OptionParser _cmd_parser = OptionParser(usage="usage: %prog [options] package.module:app") @@ -32,8 +33,11 @@ if __name__ == '__main__': _opt("--debug", action="store_true", help="start server in debug mode.") _opt("--reload", action="store_true", help="auto-reload on file changes.") _cmd_options, _cmd_args = _cmd_parser.parse_args() - if _cmd_options.server and _cmd_options.server.startswith('gevent'): - import gevent.monkey; gevent.monkey.patch_all() + if _cmd_options.server: + if _cmd_options.server.startswith('gevent'): + import gevent.monkey; gevent.monkey.patch_all() + elif _cmd_options.server.startswith('eventlet'): + import eventlet; eventlet.monkey_patch() import base64, cgi, email.utils, functools, hmac, imp, itertools, mimetypes,\ os, re, subprocess, sys, tempfile, threading, time, warnings @@ -2822,7 +2826,10 @@ class GunicornServer(ServerAdapter): class EventletServer(ServerAdapter): """ Untested """ def run(self, handler): - from eventlet import wsgi, listen + from eventlet import wsgi, listen, patcher + if not patcher.is_monkey_patched(os): + msg = "Bottle requires eventlet.monkey_patch() (before import)" + raise RuntimeError(msg) try: wsgi.server(listen((self.host, self.port)), handler, log_output=(not self.quiet)) |