Changes for version 6.57

  • override AnyEvent condvar methods "properly", as AnyEvent has support for pluggable condvars since 2011. This also avoids problems with recursive waits by avoiding to mix impl methods with coro code.
  • allow rouse_wait to be called in a different thread.
  • slightly clarify rouse_cb/rouse_wait documentation.
  • slightly improve rouse callback performance and memory usage.
  • try to report correct calller when throwing exception in on $condvar->recv, not a useless line in Coro::AnyEvent.



the only real threads in perl
truly asynchronous file and directory I/O
integrate threads into AnyEvent
truly asynchronous bdb access
message queues
various functions that help debugging Coro programs
non-blocking I/O with a blocking interface.
make LWP non-blocking - as much as possible
MakeMaker glue for the XS-level Coro API
reader/write locks
a (slow but coro-aware) replacement for CORE::select
counting semaphores
efficient set of counting semaphores
thread signals (binary semaphores)
non-blocking socket-I/O
manage coroutine-specific variables.
first class continuations
offer a more fine-grained Storable interface
timers and timeouts, independent of any event loop
various utility functions.
do events the coro-way, with EV
do events the coro-way, with Event


in Coro/
in Coro/
in Coro/
in Coro/