# Changelog

## Version 0.10.0

The following items were added to the gevent top level package:

The following items were marked as deprecated:

Internally, gevent.greenlet was split into a number of modules:

Thanks to Jason Toffaletti for reporting the installation issue and providing a test case for wsgi double content-length header bug.

## Version 0.9.3

• Fixed all known bugs in the :mod:gevent.queue module made it 2.4-compatible. :class:LifoQueue and :class:PriorityQueue are implemented as well.

:mod:gevent.queue will deprecate both coros.Queue and coros.Channel.

• Fixed to :class:Timeout to raise itself by default. TimeoutError is gone. Silent timeout is now created by passing False instead of None.

• Fixed bug in :func:gevent.select.select where it could silent the wrong timeout.

• :func:spawn and :func:spawn_later now avoid creating a closure and this decreases spawning time by 50%.

• kill's and killall's wait argument was renamed to block. The polling is now implemented by greenlet.join and greenlet.joinall functions and it become more responsive, with gradual increase of sleep time.

• Renamed proc.RunningProcSet to proc.ProcSet.

• Added :func:shutdown function, which blocks until libevent has finished dispatching the events.

• The return value of event_add and event_del in core.pyx are now checked properly and :exc:IOError is raised if they have failed.

• Fixed backdoor.py, accidentally broken in the previous release.

## Version 0.9.1

• Fixed compilation with gevent libevent-1.3 (Thanks to Litao Wei for reporting the problem.)
• Fixed :class:Hub to recover silently after event_dispatch() failures (I've seen this happen after fork even though event_reinit() is called as necessary). The end result is that :func:fork now works more reliably, as detected by test_socketserver.py - it used to fail occasionally, now it does not.
• Reorganized the package, most of the stuff from gevent/__init__.py was moved to gevent/greenlet.py. gevent/__init__.py imports some of it back but not everything.
• Renamed gevent.timeout to :class:gevent.Timeout. The old name is available as an alias.
• Fixed a few bugs in :class:queue.Queue. Added test_queue.py from standard tests to check how good is :class:queue.Queue a replacement for a standard :mod:Queue (not good at all, timeouts in :meth:queue.Queue.put don't work yet)
• :mod:monkey now patches ssl module when on 2.6 (very limited support).
• Improved compatibility with Python 2.6 and Python 2.4.
• Greenlet installed from PyPI (without py.magic prefix) is properly recognized now.
• core.pyx was accidentally left out of the source package, it's included now.
• :class:GreenSocket <socket.socket> now wraps a socket object from _socket module rather than from :mod:socket.

## Version 0.9.0

Started as eventlet 0.8.11 fork, with the intention to support only libevent as a backend. Compared to eventlet, this version has a much simpler API and implementation and a few severe bugs fixed, namely

Besides having less bugs and less code to care about the goals of the fork are:

• piggy-back on libevent as much as possible (use its http and dns code)
• use the interfaces and conventions from the standard Python library where possible
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.