diff options
author | Armin Ronacher <armin.ronacher@active-4.com> | 2016-04-25 16:33:14 +0200 |
---|---|---|
committer | Armin Ronacher <armin.ronacher@active-4.com> | 2016-04-25 16:33:14 +0200 |
commit | d4053050f5a2edc84cd386121872a15b6811a8f4 (patch) | |
tree | 892bdf44296bcb699c28f9ee05ae2e2f5d9639fd | |
parent | 719358b8d21024b6a7374683d5377d7354b4ec97 (diff) | |
download | raven-d4053050f5a2edc84cd386121872a15b6811a8f4.tar.gz |
Detect disabled threads for uwsgifeature/check-threads
-rw-r--r-- | raven/transport/threaded.py | 3 | ||||
-rw-r--r-- | raven/utils/compat.py | 14 |
2 files changed, 16 insertions, 1 deletions
diff --git a/raven/transport/threaded.py b/raven/transport/threaded.py index b46e786..7bab845 100644 --- a/raven/transport/threaded.py +++ b/raven/transport/threaded.py @@ -16,7 +16,7 @@ from time import sleep, time from raven.transport.base import AsyncTransport from raven.transport.http import HTTPTransport -from raven.utils.compat import Queue +from raven.utils.compat import Queue, check_threads DEFAULT_TIMEOUT = 10 @@ -27,6 +27,7 @@ class AsyncWorker(object): _terminator = object() def __init__(self, shutdown_timeout=DEFAULT_TIMEOUT): + check_threads() self._queue = Queue(-1) self._lock = threading.Lock() self._thread = None diff --git a/raven/utils/compat.py b/raven/utils/compat.py index e00b499..5b31a8e 100644 --- a/raven/utils/compat.py +++ b/raven/utils/compat.py @@ -46,3 +46,17 @@ except ImportError: from urllib import parse as _urlparse # NOQA urlparse = _urlparse + + +def check_threads(): + try: + from uwsgi import opt + except ImportError: + return + + if str(opt.get('enable-threads', '0')).lower() in ('false', 'off', 'no', '0'): + from warnings import warn + warn(Warning('We detected the use of uwsgi with disabled threads. ' + 'This will cause issues with the transport you are ' + 'trying to use. Please enable threading for uwsgi. ' + '(Enable the "enable-threads" flag).')) |