[poe-commits] poe/lib/POE Loop.pm,1.6,1.7
Brought to you by:
rcaputo
From: <rc...@us...> - 2005-06-29 05:45:00
|
Update of /cvsroot/poe/poe/lib/POE In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3097/lib/POE Modified Files: Loop.pm Log Message: Explain how POE finds a POE::Loop module. This closes rt.cpan.org ticket 7852. Index: Loop.pm =================================================================== RCS file: /cvsroot/poe/poe/lib/POE/Loop.pm,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Loop.pm 18 Dec 2004 04:24:56 -0000 1.6 --- Loop.pm 29 Jun 2005 05:44:51 -0000 1.7 *************** *** 463,466 **** --- 463,491 ---- =back + =head1 HOW POE FINDS LOOP BRIDGES + + The first time POE::Kernel is used, it examines the modules currently + loaded in memory and tries to load an appropriate POE::Loop subclass + based on what it discovers. + + Firstly, if a POE::Loop class is manually loaded before POE::Kernel, + then that will be used. End of story. + + If one isn't, POE::Kernel iterates through %INC to discover which + modules are already loaded. For each of them, it tries to load a + similarly-named POE::XS::Loop class, then it tries a corresponding + POE::Loop class. For example, if IO::Poll is loaded, POE::Kernel + tries + + use POE::XS::Loop::IO_Poll; + use POE::Loop::IO_Poll; + + POE::Loop::Select is the fallback event loop. It's loaded if none of + the currently loaded modules has its own POE::Loop class. + + It can't be repeated often enough that event loops must be loaded + before POE::Kernel. Otherwise POE::Kernel will not detect the event + loop you want to use, and the wrong POE::Loop class will be loaded. + =head1 SEE ALSO |