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

Changes for version 5.1 - 2008-11-24

  • wrote a small introductory tutorial - Coro::Intro.
  • convert Coro::Timer, Coro::Select and Coro::Util to rouse API.
  • Coro::Select did errornously dup the file descriptors and didn't work with all AnyEvent backends.
  • Coro::Select wasn't imported correctly form Coro::LWP, causing blocking LWP data transfers.
  • disassociate c contexts from coro objects - this is agruably more correct, but mostly allows sharing of cctxs between coro and state objects, for added memory savings and speed increases.
  • bumped $Coro::POOL_RSS up to 32kb by default.
  • no longer set the optype to OP_CUSTOM, as B::* understandably doesn't like this very much (and we *are* a type of entersub).
  • implement state cloning, just to prove that call/cc can be done.
  • automatically load Coro::AnyEvent in Coro::Handle.
  • wrap ->cancel calls in eval inside Coro::Handle as EV watchers do not have this method (and don't need it either).
  • speed up generic anyevent methods in Coro::Handle by using rouse callbacks.
  • allow coroutines in $Coro::IDLE, speeding up Coro::AnyEvent and others. It also makes the debugger happier, as you can trace through the idle threads now.
  • add comppad_name* and hints ($^H, %^H) to per-thread variables.
  • eg/event was pretty broken.
  • better 5.8.6 compatibility.

Documentation

Modules

the only real threads in perl
truly asynchronous file and directory I/O
integrate coroutines 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/SemaphoreSet.pm
in Coro/Timer.pm