Query: coro::select
OS: debian
Section: 3pm
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
Select(3pm) User Contributed Perl Documentation Select(3pm)NAMECoro::Select - a (slow but coro-aware) replacement for CORE::selectSYNOPSISuse Coro::Select; # replace select globally (be careful, see below) use Core::Select 'select'; # only in this module use Coro::Select (); # use Coro::Select::selectDESCRIPTIONThis module tries to create a fully working replacement for perl's "select" built-in, using "AnyEvent" watchers to do the job, so other threads 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 threads. This implementation works fastest when only very few bits are set in the fd set(s). 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. Note that overriding "select" globally might actually cause problems, as some "AnyEvent" backends use "select" themselves, and asking AnyEvent to use Coro::Select, which in turn asks AnyEvent will not quite work. You can also invoke it from the commandline as "perl -MCoro::Select". To override select only for a single module (e.g. "Net::DBus::Reactor"), use a code fragment like this to load it: { package Net::DBus::Reactor; use Coro::Select qw(select); use Net::DBus::Reactor; } Some modules (notably POE::Loop::Select) directly call "CORE::select". For these modules, we need to patch the opcode table by sandwiching it between calls to "Coro::Select::patch_pp_sselect" and "Coro::Select::unpatch_pp_sselect": BEGIN { use Coro::Select (); Coro::Select::patch_pp_sselect; require evil_poe_module_using_CORE::SELECT; Coro::Select::unpatch_pp_sselect; }BUGSFor performance reasons, Coro::Select's select function might not properly detect bad file descriptors (but relying on EBADF is inherently non-portable).SEE ALSOCoro::LWP.AUTHORMarc Lehmann <schmorp@schmorp.de> http://home.schmorp.de/ perl v5.14.2 2012-04-13 Select(3pm)
Related Man Pages |
---|
dbd::gofer::transport::corostream5.18(3) - mojave |
coro::util(3pm) - debian |
coro::select(3pm) - debian |
coro::socket(3pm) - debian |
coro::storable(3pm) - debian |
Similar Topics in the Unix Linux Community |
---|
Select a portion of file based on query |
writing the output of SQL into one file |
Select older file if multiple file exists with same name |
PS3 select when wrong input given |
Select command |