summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZiad Sawalha <gerrit@highbridgellc.com>2014-05-04 11:46:36 -0500
committerZiad Sawalha <gerrit@highbridgellc.com>2014-05-04 11:47:22 -0500
commit52014fa25858e8c1157ce939e43f7211bb9ac291 (patch)
treee0b7c3c17ce553b137913bbc6112a23621170b1e
parent8611f5c7cb9459d48d6412ab8146d7bcb8f26733 (diff)
downloadbottle-52014fa25858e8c1157ce939e43f7211bb9ac291.tar.gz
Make sure to monkey_patch with eventlet
Similar logic to gevent.
-rw-r--r--bottle.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/bottle.py b/bottle.py
index 7b22ef4..d276feb 100644
--- a/bottle.py
+++ b/bottle.py
@@ -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))