- If greenlet module older than 0.3.2 is used, then greenlet.GreenletExit.__bases__ is monkey patched to derive from BaseException and not Exception. That way gevent.GreenletExit is always derived from BaseException, regardless of installed greenlet version.
- Some code supporting Python 2.4 has been removed.
- Added thread pool-based resolver. Enable with GEVENT_RESOLVER=thread.
- Added UDP server: gevent.server.DatagramServer
- A "configure" is now run on libev. This fixes a problem of 'kqueue' not being available on Mac OS X.
- Gevent recognizes some environment variables now:
- GEVENT_BACKEND allows passing argument to loop, e.g. "GEVENT_BACKEND=select" for force select backend
- GEVENT_RESOLVER allows choosing resolver class.
- GEVENT_THREADPOOL allows choosing thread pool class.
- Added new examples: portforwarder, psycopg2_pool.py, threadpool.py, udp_server.py
- Fixed non-embedding build. To build against system libev, remove or rename 'libev' directory. To build against system c-ares, remove or rename 'c-ares'. Thanks to Örjan Persson.
- gevent.joinall() method now accepts optional 'count' keyword.
- gevent.fork() only calls reinit() in the child process now.
- gevent.run() now returns False when exiting because of timeout or event (previous None).
- Hub got a new method: destroy().
- Hub got a new property: threadpool.
ares.pyx:
- Fixed issue #104: made ares_host_result pickable issue. Thanks to Shaun Cutts.
pywsgi:
- Removed unused deprecated 'wfile' property from WSGIHandler
- Fixed issue #92: raise IOError on truncated POST requests.
- Fixed issue #93: do not sent multiple "100 continue" responses
core:
- Fixed issue #97: the timer watcher now calls ev_now_update() in start() and again() unless 'update' keyword is passed and set to False.
- add set_syserr_cb() function; it's used by gevent internally.
- gevent now installs syserr callback using libev's set_syserr_cb. This callback is called when libev encounters an error it cannot recover from. The default action is to print a message and abort. With the callback installed, a SystemError() is now raised in the main greenlet.
- renamed 'backend_fd' property to 'fileno()' method. (not available if you build gevent against system libev)
- added 'asynccnt' property (not available if you build gevent against system libev)
- made loop.__repr__ output a bit more compact
- the watchers check the arguments for validness now (previously invalid argument would crash libev).
- The 'async' watcher now has send() method;
- fixed time() function
- libev has been upgraded to latest CVS version.
- libev has been patched to use send()/recv() for evpipe on windows when libev_vfd.h is in effect
resolver_ares:
- Slightly improved compatibility with stdlib's socket in some error cases.
socket:
- Fixed close() method not to reference any globals