summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2016-04-25 16:33:14 +0200
committerArmin Ronacher <armin.ronacher@active-4.com>2016-04-25 16:33:14 +0200
commitd4053050f5a2edc84cd386121872a15b6811a8f4 (patch)
tree892bdf44296bcb699c28f9ee05ae2e2f5d9639fd
parent719358b8d21024b6a7374683d5377d7354b4ec97 (diff)
downloadraven-d4053050f5a2edc84cd386121872a15b6811a8f4.tar.gz
Detect disabled threads for uwsgifeature/check-threads
-rw-r--r--raven/transport/threaded.py3
-rw-r--r--raven/utils/compat.py14
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).'))