With Tornado’s gen module, you can turn Python generators into full-featured coroutines, but coordination among these coroutines is difficult without mutexes, semaphores, and queues. Toro provides to Tornado coroutines a set of locking primitives and queues analogous to those that Gevent provides to Greenlets, or that the standard library provides to threads. (Note that these primitives and queues are not actually thread-safe and cannot be used in place of those from the standard library–they are meant to coordinate Tornado coroutines in single-threaded apps, not to protect shared objects in multithreaded apps.)