… | |
… | |
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.44'; |
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 |
… | |
… | |
123 | for more info. |
130 | for more info. |
124 | |
131 | |
125 | The loop will automatically be destroyed when it is no longer referenced |
132 | The loop will automatically be destroyed when it is no longer referenced |
126 | by any watcher and the loop object goes out of scope. |
133 | by any watcher and the loop object goes out of scope. |
127 | |
134 | |
128 | Using C<EV::FLAG_FORKCHECK> is recommended, as only the default event loop |
135 | If you are not embedding the loop, then Using C<EV::FLAG_FORKCHECK> |
129 | is protected by this module. |
136 | is recommended, as only the default event loop is protected by this |
|
|
137 | module. If you I<are> embedding this loop in the default loop, this is not |
|
|
138 | necessary, as C<EV::embed> automatically does the right thing on fork. |
130 | |
139 | |
131 | =item $loop->loop_fork |
140 | =item $loop->loop_fork |
132 | |
141 | |
133 | Must be called after a fork in the child, before entering or continuing |
142 | Must be called after a fork in the child, before entering or continuing |
134 | the event loop. An alternative is to use C<EV::FLAG_FORKCHECK> which calls |
143 | the event loop. An alternative is to use C<EV::FLAG_FORKCHECK> which calls |
… | |
… | |
136 | documentation). |
145 | documentation). |
137 | |
146 | |
138 | =item $loop->loop_verify |
147 | =item $loop->loop_verify |
139 | |
148 | |
140 | Calls C<ev_verify> to make internal consistency checks (for debugging |
149 | 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 |
150 | libev) and abort the program if any data structures were found to be |
142 | corrupted. |
151 | corrupted. |
143 | |
152 | |
144 | =item $loop = EV::default_loop [$flags] |
153 | =item $loop = EV::default_loop [$flags] |
145 | |
154 | |
146 | Return the default loop (which is a singleton object). Since this module |
155 | Return the default loop (which is a singleton object). Since this module |
147 | already creates the default loop with default flags, specifying flags here |
156 | already creates the default loop with default flags, specifying flags here |
148 | will not have any effect unless you destroy the default loop. |
157 | will not have any effect unless you destroy the default loop first, which |
|
|
158 | isn't supported. So in short: don't do it, and if you break it, you get to |
|
|
159 | keep the pieces. |
149 | |
160 | |
150 | =back |
161 | =back |
151 | |
162 | |
152 | |
163 | |
153 | =head1 BASIC INTERFACE |
164 | =head1 BASIC INTERFACE |
… | |
… | |
967 | # use the default loop otherwise |
978 | # use the default loop otherwise |
968 | $socket_loop ||= EV::default_loop; |
979 | $socket_loop ||= EV::default_loop; |
969 | |
980 | |
970 | =over 4 |
981 | =over 4 |
971 | |
982 | |
972 | =item $w = EV::embed $otherloop, $callback |
983 | =item $w = EV::embed $otherloop[, $callback] |
973 | |
984 | |
974 | =item $w = EV::embed_ns $otherloop, $callback |
985 | =item $w = EV::embed_ns $otherloop[, $callback] |
975 | |
986 | |
976 | =item $w = $loop->embed ($otherloop, $callback) |
987 | =item $w = $loop->embed ($otherloop[, $callback]) |
977 | |
988 | |
978 | =item $w = $loop->embed_ns ($otherloop, $callback) |
989 | =item $w = $loop->embed_ns ($otherloop[, $callback]) |
979 | |
990 | |
980 | Call the callback when the embedded event loop (C<$otherloop>) has any |
991 | 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 |
992 | 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 |
993 | embedded event loop will be managed automatically (which is recommended), |
983 | automatically. |
994 | otherwise you have to invoke C<sweep> yourself. |
984 | |
995 | |
985 | The C<embed_ns> variant doesn't start (activate) the newly created watcher. |
996 | The C<embed_ns> variant doesn't start (activate) the newly created watcher. |
986 | |
997 | |
987 | =back |
998 | =back |
988 | |
999 | |