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

Changes for version 4.1 - 2007-10-11

  • incompatible change: $SIG{__DIE__} and $SIG{__WARN__} will now be local to each coro (see Coro::State).
  • incompatible change: for very deep reasons, cede and cede_notself cannot return anything, so nothing will be returned.
  • possibly bring back 5.10 compatibility (untested).
  • work around stupid (and wrong) warning on 5.10 :(.
  • overlay the saved state over the context stack. This saves a few hundred bytes per coroutine on average and also speeds up context switching a bit.
  • further tune default stack sizes.
  • (more) correctly calculate stack usage in coro_rss.
  • Coro::Storable::blocking_* did not properly lock resulting in races between coroutines.
  • added Coro::Storable::guard.
  • stopping to trace a coroutine could destroy the cctx of an unrelated coroutine.
  • explain the relationship between Perl and C coroutines in more detail in Coro::State.
  • Coro::Util::inet_aton did not short-circuit dotted quad forms, causing a fork per resolve. This also affected Coro::Socket.
  • switch to a separate stack in $coro->call/eval to avoid invalidating pointers.

Modules

coroutine process abstraction
truly asynchronous file and directrory I/O
message queues
various functions that help debugging Coro programs
non-blocking io with a blocking interface.
make LWP non-blocking - as much as possible
MakeMaker glue for the C-level Coro API
reader/write locks
a (slow but coro-aware) replacement for CORE::select
non-binary semaphores
hash of semaphores.
coroutine signals (binary semaphores)
non-blocking socket-io
manage coroutine-specific variables.
create and manage simple coroutines
offer a more fine-grained Storable interface
simple timer package, independent of used event loops
various utility functions.
do events the coro-way

Provides

in Coro/Handle.pm
in Coro/LWP.pm
in Coro/Timer.pm
in Coro/Storable.pm