NAME
Coro::Select - a (slow but coro-aware) replacement for CORE::select
SYNOPSIS
use Coro::Select; # replace select globally
use Core::Select 'select'; # only in this module
use Coro::Select (); # use Coro::Select::select
DESCRIPTION
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 perl -MCoro::Select
.
Performance naturally isn't great, but unless you need very high select performance you normally won't notice the difference.
SEE ALSO
AUTHOR
Marc Lehmann <schmorp@schmorp.de>
http://home.schmorp.de/