… | |
… | |
71 | |
71 | |
72 | =cut |
72 | =cut |
73 | |
73 | |
74 | package EV; |
74 | package EV; |
75 | |
75 | |
|
|
76 | no warnings; |
76 | use strict; |
77 | use strict; |
77 | |
78 | |
78 | BEGIN { |
79 | BEGIN { |
79 | our $VERSION = '3.42'; |
80 | our $VERSION = '3.431'; |
80 | use XSLoader; |
81 | use XSLoader; |
81 | XSLoader::load "EV", $VERSION; |
82 | XSLoader::load "EV", $VERSION; |
82 | } |
83 | } |
83 | |
84 | |
84 | @EV::IO::ISA = |
85 | @EV::IO::ISA = |
… | |
… | |
111 | default loop as this is fastest (perl-wise), best supported by other |
112 | default loop as this is fastest (perl-wise), best supported by other |
112 | modules (e.g. AnyEvent or Coro) and most portable event loop. |
113 | modules (e.g. AnyEvent or Coro) and most portable event loop. |
113 | |
114 | |
114 | For specific programs you can create additional event loops dynamically. |
115 | For specific programs you can create additional event loops dynamically. |
115 | |
116 | |
|
|
117 | If you want to take avdantage of kqueue (which often works properly for |
|
|
118 | sockets only) even though the default loop doesn't enable it, you can |
|
|
119 | I<embed> a kqueue loop into the default loop: running the default loop |
|
|
120 | will then also service the kqueue loop to some extent. See the example in |
|
|
121 | the section about embed watchers for an example on how to achieve that. |
|
|
122 | |
116 | =over 4 |
123 | =over 4 |
117 | |
124 | |
118 | =item $loop = new EV::loop [$flags] |
125 | =item $loop = new EV::loop [$flags] |
119 | |
126 | |
120 | Create a new event loop as per the specified flags. Please refer to the |
127 | Create a new event loop as per the specified flags. Please refer to the |
… | |
… | |
136 | documentation). |
143 | documentation). |
137 | |
144 | |
138 | =item $loop->loop_verify |
145 | =item $loop->loop_verify |
139 | |
146 | |
140 | Calls C<ev_verify> to make internal consistency checks (for debugging |
147 | Calls C<ev_verify> to make internal consistency checks (for debugging |
141 | libev) and abort the program if any data structures wree found to be |
148 | libev) and abort the program if any data structures were found to be |
142 | corrupted. |
149 | corrupted. |
143 | |
150 | |
144 | =item $loop = EV::default_loop [$flags] |
151 | =item $loop = EV::default_loop [$flags] |
145 | |
152 | |
146 | Return the default loop (which is a singleton object). Since this module |
153 | Return the default loop (which is a singleton object). Since this module |
147 | already creates the default loop with default flags, specifying flags here |
154 | already creates the default loop with default flags, specifying flags here |
148 | will not have any effect unless you destroy the default loop. |
155 | will not have any effect unless you destroy the default loop first, which |
|
|
156 | isn't supported. So in short: don't do it, and if you break it, you get to |
|
|
157 | keep the pieces. |
149 | |
158 | |
150 | =back |
159 | =back |
151 | |
160 | |
152 | |
161 | |
153 | =head1 BASIC INTERFACE |
162 | =head1 BASIC INTERFACE |
… | |
… | |
967 | # use the default loop otherwise |
976 | # use the default loop otherwise |
968 | $socket_loop ||= EV::default_loop; |
977 | $socket_loop ||= EV::default_loop; |
969 | |
978 | |
970 | =over 4 |
979 | =over 4 |
971 | |
980 | |
972 | =item $w = EV::embed $otherloop, $callback |
981 | =item $w = EV::embed $otherloop[, $callback] |
973 | |
982 | |
974 | =item $w = EV::embed_ns $otherloop, $callback |
983 | =item $w = EV::embed_ns $otherloop[, $callback] |
975 | |
984 | |
976 | =item $w = $loop->embed ($otherloop, $callback) |
985 | =item $w = $loop->embed ($otherloop[, $callback]) |
977 | |
986 | |
978 | =item $w = $loop->embed_ns ($otherloop, $callback) |
987 | =item $w = $loop->embed_ns ($otherloop[, $callback]) |
979 | |
988 | |
980 | Call the callback when the embedded event loop (C<$otherloop>) has any |
989 | Call the callback when the embedded event loop (C<$otherloop>) has any |
981 | I/O activity. The C<$callback> should alwas be specified as C<undef> in |
990 | I/O activity. The C<$callback> is optional: if it is missing, then the |
982 | this version of EV, which means the embedded event loop will be managed |
991 | embedded event loop will be managed automatically (which is recommended), |
983 | automatically. |
992 | otherwise you have to invoke C<sweep> yourself. |
984 | |
993 | |
985 | The C<embed_ns> variant doesn't start (activate) the newly created watcher. |
994 | The C<embed_ns> variant doesn't start (activate) the newly created watcher. |
986 | |
995 | |
987 | =back |
996 | =back |
988 | |
997 | |