- Python 3: A monkey-patched :class:
threading.RLock
now properly
blocks (or deadlocks) inacquire
if the default value for
timeout of -1 is used (which differs from gevent's default of
None). Theacquire
method also raises the same :exc:ValueError
exceptions that the standard library does for invalid parameters.
Reported in #750 by Joy Zheng. - Fix a race condition in :class:
~gevent.event.Event
that made it
returnFalse
when the event was set and cleared by the same
greenlet before allowing a switch to already waiting greenlets. (Found
by the 3.4 and 3.5 standard library test suites; the same as Python
bug 13502
_. Note that the Python 2 standard library still has this
race condition.) - :class:
~gevent.event.Event
and :class:~.AsyncResult
now wake
waiting greenlets in the same (unspecified) order. Previously,
AsyncResult
tended to use a FIFO order, but this was never
guaranteed. Both classes also use less per-instance memory. - Using a :class:
~logging.Logger
as a :mod:pywsgi
error or request
log stream no longer produces extra newlines. Reported in
#756 by ael-code. - Windows: Installing from an sdist (.tar.gz) on PyPI no longer
requires having Cython installed first. (Note that the binary installation
formats (wheels, exes, msis) are preferred on Windows.) Reported in
#757 by Ned Batchelder. - Issue a warning when :func:
~gevent.monkey.patch_all
is called with
os
set to False (not the default) butsignal
is still True
(the default). This combination of parameters will cause signal
handlers forSIGCHLD
to not get called. In the future this might
raise an error. Reported by Josh Zuech. - Issue a warning when :func:
~gevent.monkey.patch_all
is called more
than once with different arguments. That causes the cumulative set of all True
arguments to be patched, which may cause unexpected results. - Fix returning the original values of certain
threading
attributes from :func:gevent.monkey.get_original
.