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

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

Coro::LWP.

AUTHOR

 Marc Lehmann <schmorp@schmorp.de>
 http://home.schmorp.de/