The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 5.14 - 2009-06-24

  • provide explicit functions to "cede" to the event loop in Coro::AnyEvent, as this seems to have been a difficult concept (poll, sleep, idle, idle_upto).
  • add Coro::AnyEvent::readable/writable functions.
  • clarify Coro::EV/Event/AnyEvent manpages.
  • free per-thread global scalars in the thread calling ->cancel, to avoid crashes when $_, $@ etc., are magical but some of those had already been freed.
  • "unexperimentalise" the callback interface for Coro::Semaphore.
  • speed up ready queue management/context switching by using a linked list instead of an array (~5-10%).
  • implement "watch" command in Coro::Debug shells.
  • for fun, implement time-slicing as an example in the manpage.
  • if AnyEvent detects EV or Event, but we don't have Coro::EV or Coro::Event, use the normal AnyEvent handling instead of dieing (the same is true for Coro::Handle).
  • properly document Coro::EV::timed_io_once.
  • avoid unneccessary ->cancel calls in Coro::Handle.
  • maybe make it work on mingw32 with win32 backend (based on patch by Yasuhiro Matsumoto).

Documentation

Modules

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
coroutine 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

Provides

in Coro/State.pm
in Coro/AnyEvent.pm
in Coro/Handle.pm
in Coro/LWP.pm
in Coro/Timer.pm