Fix thread
module import on Python 2.7
The Python 2.7 `thread` module has been renamed to `_thread` in Python3. This package was importing the `_thread` anyway, and was thus fallbacking to the `dummy_thread32` module everytime, which is far from failproof (eg. `lru_cache` decorator used in a WSGI app started on uWSGI with threads enabled and high concurrency raises exceptions). This fix loads the `thread` module accordingly, without trying to load Python3 `_thread` module since setup.py prevents installation on Python 3 explicitly. This package targets Python 2.7 only, as documented
This commit is contained in:
parent
8158f61bd7
commit
438927ed7b
@ -6,7 +6,10 @@ not need to be rewritten for when the thread module is not present.
|
||||
Suggested usage is::
|
||||
|
||||
try:
|
||||
import _thread
|
||||
try:
|
||||
import _thread # Python >= 3
|
||||
except:
|
||||
import thread as _thread # Python < 3
|
||||
except ImportError:
|
||||
import _dummy_thread as _thread
|
||||
|
||||
|
@ -17,8 +17,8 @@ from .reprlib32 import recursive_repr as _recursive_repr
|
||||
from weakref import proxy as _proxy
|
||||
import sys as _sys
|
||||
try:
|
||||
from _thread import allocate_lock as Lock
|
||||
except:
|
||||
from thread import allocate_lock as Lock
|
||||
except ImportError:
|
||||
from ._dummy_thread32 import allocate_lock as Lock
|
||||
|
||||
################################################################################
|
||||
|
@ -5,7 +5,7 @@ __all__ = ["Repr", "repr", "recursive_repr"]
|
||||
import __builtin__ as builtins
|
||||
from itertools import islice
|
||||
try:
|
||||
from _thread import get_ident
|
||||
from thread import get_ident
|
||||
except ImportError:
|
||||
from _dummy_thread32 import get_ident
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user