2016-02-22: Version 0.5.1

  • Fix EventLoop.stop() for the new semantics of stop() introduced in Python 3.4.4 and Python 3.5.1. The method now writes into the self-pipe to wake-up the event loop. Otherwise, the stop() may not be taken in account immediatly, and even block forever.

2016-02-22: Version 0.5

  • Unit tests now use the aiotest library.
  • Fix for eventlet used with monkey-patching: inject the original threading module and the original threading.get_ident() function in asyncio.base_events.
  • Drop support for Python 2.6 and Python 3.2. aioeventlet depends on trollius and pip which don’t support these Python versions anymore.

2014-12-03: Version 0.4

  • Add
  • tox now also run the aiotest test suite
  • Rename the project from aiogreen to aioeventlet
  • Rename the link_future() function to yield_future()
  • Running tests with eventlet monkey-patching now works with Python 3.

2014-11-23: version 0.3

  • wrap_greenthread() now raises an exception if the greenthread is running or already finished. In debug mode, the exception is not more logged to sys.stderr for greenthreads.
  • link_future() now accepts coroutine objects.
  • link_future() now raises an exception if it is called from the greenthread of the aiogreen event loop.
  • Fix eventlet detection of blocking tasks: cancel the alarm when the aiogreen event loop stops.
  • Fix to run an event loop in a thread different than the main thread in debug mode: disable eventlet “debug_blocking”, it is implemented with the SIGALRM signal, but signal handlers can only be set in the main thread.

2014-11-21: version 0.2

aiogreen event loop has been rewritten to reuse more asyncio/trollius code. It now only has a few specific code.

It is now possible use greenthreads in asyncio coroutines, and to use asyncio coroutines, tasks and futures in greenthreads: see link_future() and wrap_greenthread() functions.

All asyncio network are supported: TCP, UCP and UNIX clients and servers.

Support of pipes, signal handlers and subprocess is still experimental.


  • Add a Sphinx documentation published at
  • Add the link_future() function: wait for a future from a greenthread.
  • Add the wrap_greenthread() function: wrap a greenthread into a Future
  • Support also eventlet 0.14, not only eventlet 0.15 or newer
  • Support eventlet with monkey-patching
  • Rewrite the code handling file descriptors to ensure that the listener is only called once per loop iteration, to respect asyncio specification.
  • Simplify the loop iteration: remove custom code to reuse instead the asyncio/trollius code (_run_once)
  • Reuse call_soon, call_soon_threadsafe, call_at, call_later from asyncio/trollius, remove custom code
  • sock_connect() is now asynchronous
  • Add a suite of automated unit tests
  • Fix EventLoop.stop(): don’t stop immediatly, but schedule stopping the event loop with call_soon()
  • Add tox.ini to run tests with tox
  • Setting debug mode of the event loop doesn’t enable “debug_blocking” of eventlet on Windows anymore, the feature is not implemented on Windows in eventlet.
  • add_reader() and add_writer() now cancels the previous handle and sets a new handle
  • In debug mode, detect calls to call_soon() from greenthreads which are not threadsafe (would not wake up the event loop).
  • Only set “debug_exceptions” of the eventlet hub when the debug mode of the event loop is enabled.

2014-11-19: version 0.1

  • First public release