--- EV/README 2010/10/21 02:46:59 1.36 +++ EV/README 2010/10/23 22:25:44 1.37 @@ -77,6 +77,36 @@ and still be faster than with any other event loop currently supported in Perl. + PORTING FROM EV 3.X to 4.X + EV version 4 introduces a number of incompatible changes summarised + here. According to the depreciation strategy used by libev, there is a + compatibility layer in place so programs should continue to run + unchanged (the XS interface lacks this layer, so programs using that one + need to be updated). + + This compatibility layer will be switched off in some future release. + + All changes relevant to Perl are renames of symbols, functions and + methods: + + EV::loop => EV::run + EV::LOOP_NONBLOCK => EV::RUN_NOWAIT + EV::LOOP_ONESHOT => EV::RUN_ONCE + + EV::unloop => EV::break + EV::UNLOOP_CANCEL => EV::BREAK_CANCEL + EV::UNLOOP_ONE => EV::BREAK_ONE + EV::UNLOOP_ALL => EV::BREAK_ALL + + EV::TIMEOUT => EV::TIMER + + EV::loop_count => EV::iteration + EV::loop_depth => EV::depth + EV::loop_verify => EV::verify + + The loop object methods corresponding to the functions above have been + similarly renamed. + MODULE EXPORTS This module does not export any symbols. @@ -768,7 +798,7 @@ has gathered events), but before any other callbacks have been invoked. - This is used to integrate other event-based software into the EV + This can be used to integrate other event-based software into the EV mainloop: You register a prepare callback and in there, you create io and timer watchers as required by the other software. Here is a real-world example of integrating Net::SNMP (with some details left @@ -815,6 +845,15 @@ The "check_ns" variant doesn't start (activate) the newly created watcher. + EV::CHECK constant issues + Like all other watcher types, there is a bitmask constant for use in + $revents and other places. The "EV::CHECK" is special as it has the + same name as the "CHECK" sub called by Perl. This doesn't cause big + issues on newer perls (beginning with 5.8.9), but it means thatthe + constant must be *inlined*, i.e. runtime calls will not work. That + means that as long as you always "use EV" and then "EV::CHECK" you + are on the safe side. + FORK WATCHERS - the audacity to resume the event loop after a fork Fork watchers are called when a "fork ()" was detected. The invocation is done before the event loop blocks next and before "check" watchers