- Fix an
AttributeError
fromgevent.monkey.patch_builtins
on
Python 2 when thefuture
_ library is also installed. Reported by
Carlos Sanchez. - PyPy: Fix a
DistutilsModuleError
orImportError
if the CFFI
module backinggevent.core
needs to be compiled when the hub is
initialized (due to a missing or invalid__pycache__
directory).
Now, the module will be automtically compiled when gevent is
imported (this may produce compiler output on stdout). Reported in
:issue:619
by Thinh Nguyen and :issue:631
by Andy Freeland, with
contributions by Jay Oster and Matt Dupre. - PyPy: Improve the performance of
gevent.socket.socket:sendall
with large inputs.bench_sendall.py
_ now performs about as well on
PyPy as it does on CPython, an improvement of 10x (from ~60MB/s to
~630MB/s). See thispypy bug
_ for details. - Fix a possible
TypeError
when callinggevent.socket.wait
.
Reported in #635 by lanstin. gevent.socket.socket:sendto
properly respects the socket's
blocking status (meaning it can raise EWOULDBLOCK now in cases it
wouldn't have before). Reported in :pr:634
by Mike Kaplinskiy.- Common lookup errors using the :mod:
threaded resolver <gevent.resolver_thread>
are no longer always printed to stderr
since they are usually out of the programmer's control and caught
explicitly. (Programming errors likeTypeError
are still
printed.) Reported in :issue:617
by Jay Oster and Carlos Sanchez. - PyPy: Fix a
TypeError
fromgevent.idle()
. Reported in
:issue:639
by chilun2008. - The
imap_unordered
methods of a pool support amaxsize
parameter to limit the number of results buffered waiting for the
consumer. Reported in :issue:638
by Sylvain Zimmer. - The class
gevent.queue.Queue
now consistently orders multiple
blocked waitingput
andget
callers in the order they
arrived. Previously, due to an implementation quirk this was often
roughly the case under CPython, but not under PyPy. Now they both
behave the same. - The class
gevent.queue.Queue
now supports thelen()
function.