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

Changes for version 2.5 - 2006-11-07

  • made Coro::Util, Coro::Select, Coro::Handle and Coro::Socket use AnyEvent, moved them to Coro/.
  • added Coro::LWP which contains all the uglyness required to make LWP non-blocking.
  • should work with perl 5.9.x now (Andreas König made me do it).
  • fixed another bug in Coro::Select when the timeout was undef.
  • reuse PL_start_env for all coros, saves some memory per coroutine.
  • manage PL_top_env differently, hopefully to avoid panic: top_env.
  • timeout argument was not properly used in Coro::Socket.
  • allow limited forms of subclassing in Coro::Handle/Coro::Socket.
  • emulate undocumented(!) functionality of IO::Socket required by LWP(!!).
  • updated eg/lwp to work with newer lwp's.
  • remove "FATAL: uncaught exception" prefix. Coroutines that die kill the whole process, just as exceptions in the main "coroutine" did already.

Modules

coroutine process abstraction
truly asynchronous file and directrory I/O
message queues
continuations in perl
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
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 Event/Event.pm
in Coro/Timer.pm