@jamadden jamadden released this Sep 7, 2017 · 294 commits to master since this release

Tagging 1.2.2


@jamadden jamadden released this Jul 21, 2016 · 3 commits to maint/1.1.x since this release

  • Python 2: sendall on a non-blocking socket could spuriously fail
    with a timeout.
  • If sys.stderr has been monkey-patched (not recommended),
    exceptions that the hub reports aren't lost and can still be caught.
    Reported in :issue:825 by Jelle Smet.
  • :class:selectors.SelectSelector is properly monkey-patched
    regardless of the order of imports. Reported in :issue:835 by
    Przemysław Węgrzyn.
  • Python 2: reload(site) no longer fails with a TypeError if
    gevent has been imported. Reported in :issue:805 by Jake Hilton.


@jamadden jamadden released this Apr 4, 2016 · 10 commits to maint/1.1.x since this release

1.1.1 (Apr 4, 2016)

  • Nested callbacks that set and clear an Event no longer cause
    wait to return prematurely. Reported in :issue:771 by Sergey
  • Fix build on Solaris 10. Reported in :issue:777 by wiggin15.
  • The ref parameter to :func:gevent.os.fork_and_watch was being ignored.
  • Python 3: :class:gevent.queue.Channel is now correctly iterable, instead of
    raising a :exc:TypeError.
  • Python 3: Add support for :meth:socket.socket.sendmsg,
    :meth:socket.socket.recvmsg and :meth:socket.socket.recvmsg_into
    on platforms where they are defined. Initial :pr:773 by Jakub


@jamadden jamadden released this Mar 5, 2016 · 642 commits to master since this release

  • Python 3: A monkey-patched :class:threading.RLock now properly
    blocks (or deadlocks) in acquire if the default value for
    timeout of -1 is used (which differs from gevent's default of
    None). The acquire 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
    return False 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) but signal is still True
    (the default). This combination of parameters will cause signal
    handlers for SIGCHLD 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.


@jamadden jamadden released this Feb 24, 2016 · 678 commits to master since this release

  • SSL: Attempting to send empty data using the
    :meth:~socket.socket.sendall method of a gevent SSL socket that has
    a timeout now returns immediately (like the standard library does),
    instead of incorrectly raising :exc:ssl.SSLEOFError. (Note that
    sending empty data with the :meth:~socket.socket.send
    method does raise SSLEOFError in
    both gevent and the standard library.) Reported in #719 by
    Mustafa Atik and Tymur Maryokhin, with a reproducible test case
    provided by Timo Savola.


@jamadden jamadden released this Feb 16, 2016 · 686 commits to master since this release

  • Python 2: Using the blocking API at import time when multiple greenlets are also importing should not lead to LoopExit. Reported in issue #728 by Garrett Heel.
  • Python 2: Don’t raise OverflowError when using the readline method of the WSGI input stream without a size hint or with a large size hint when the client is uploading a large amount of data. (This only impacted CPython 2; PyPy and Python 3 already handled this.) Reported in issue #289 by ggjjlldd, with contributions by Nathan Hoad.
  • BaseServer and its subclasses like WSGIServer avoid allocating a new closure for each request, reducing overhead.
  • Python 2: Under 2.7.9 and above (or when the PEP 466 SSL interfaces are available), perform the same hostname validation that the standard library does; previously some cases were ignored. Also, reading, writing, or handshaking a closed SSLSocket now raises the same ValueError the standard library does, instead of an AttributeError. Found by updating gevent’s copy of the standard library test cases. Initially reported in issue #735 by Dmitrij D. Czarkoff.
  • Python 3: Fix SSLSocket.unwrap and SNI callbacks. Also raise the correct exceptions for unconnected SSL sockets and properly validate SSL hostnames.
  • Python 3.5: Add support for socket.sendfile.
  • Python 3.4+: Add support for socket.get/set_inheritable.