Coro::Select - a (slow but coro-aware) replacement for CORE::select
use Coro::Select; # replace select globally use Core::Select 'select'; # only in this module use Coro::Select (); # use Coro::Select::select
This module tries to create a fully working replacement for perl's
select built-in, using
AnyEvent watchers to do the job, so other coroutines can run in parallel to any select user. As many libraries that only have a blocking API do not use global variables and often use select (or IO::Select), this effectively makes most such libraries "somewhat" non-blocking w.r.t. other coroutines.
To be effective globally, this module must be
use'd before any other module that uses
select, so it should generally be the first module
use'd in the main program.
You can also invoke it from the commandline as
Performance naturally isn't great, but unless you need very high select performance you normally won't notice the difference.
Marc Lehmann <email@example.com> http://home.schmorp.de/