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/