… | |
… | |
84 | default loop as this is fastest (perl-wise), best supported by other |
84 | default loop as this is fastest (perl-wise), best supported by other |
85 | modules (e.g. AnyEvent or Coro) and most portable event loop. |
85 | modules (e.g. AnyEvent or Coro) and most portable event loop. |
86 | |
86 | |
87 | For specific programs you can create additional event loops dynamically. |
87 | For specific programs you can create additional event loops dynamically. |
88 | |
88 | |
89 | If you want to take avdantage of kqueue (which often works properly for |
89 | If you want to take advantage of kqueue (which often works properly for |
90 | sockets only) even though the default loop doesn't enable it, you can |
90 | sockets only) even though the default loop doesn't enable it, you can |
91 | *embed* a kqueue loop into the default loop: running the default loop |
91 | *embed* a kqueue loop into the default loop: running the default loop |
92 | will then also service the kqueue loop to some extent. See the example |
92 | will then also service the kqueue loop to some extent. See the example |
93 | in the section about embed watchers for an example on how to achieve |
93 | in the section about embed watchers for an example on how to achieve |
94 | that. |
94 | that. |
… | |
… | |
149 | Returns the current time in (fractional) seconds since the epoch. |
149 | Returns the current time in (fractional) seconds since the epoch. |
150 | |
150 | |
151 | $time = EV::now |
151 | $time = EV::now |
152 | $time = $loop->now |
152 | $time = $loop->now |
153 | Returns the time the last event loop iteration has been started. |
153 | Returns the time the last event loop iteration has been started. |
154 | This is the time that (relative) timers are based on, and refering |
154 | This is the time that (relative) timers are based on, and referring |
155 | to it is usually faster then calling EV::time. |
155 | to it is usually faster then calling EV::time. |
156 | |
156 | |
157 | $backend = EV::backend |
157 | $backend = EV::backend |
158 | $backend = $loop->backend |
158 | $backend = $loop->backend |
159 | Returns an integer describing the backend used by libev |
159 | Returns an integer describing the backend used by libev |
160 | (EV::METHOD_SELECT or EV::METHOD_EPOLL). |
160 | (EV::BACKEND_SELECT or EV::BACKEND_EPOLL). |
161 | |
161 | |
162 | EV::loop [$flags] |
162 | EV::loop [$flags] |
163 | $loop->loop ([$flags]) |
163 | $loop->loop ([$flags]) |
164 | Begin checking for events and calling callbacks. It returns when a |
164 | Begin checking for events and calling callbacks. It returns when a |
165 | callback calls EV::unloop. |
165 | callback calls EV::unloop. |
… | |
… | |
179 | EV::loop will return as fast as possible. |
179 | EV::loop will return as fast as possible. |
180 | |
180 | |
181 | $count = EV::loop_count |
181 | $count = EV::loop_count |
182 | $count = $loop->loop_count |
182 | $count = $loop->loop_count |
183 | Return the number of times the event loop has polled for new events. |
183 | Return the number of times the event loop has polled for new events. |
184 | Sometiems useful as a generation counter. |
184 | Sometimes useful as a generation counter. |
185 | |
185 | |
186 | EV::once $fh_or_undef, $events, $timeout, $cb->($revents) |
186 | EV::once $fh_or_undef, $events, $timeout, $cb->($revents) |
187 | $loop->once ($fh_or_undef, $events, $timeout, $cb->($revents)) |
187 | $loop->once ($fh_or_undef, $events, $timeout, $cb->($revents)) |
188 | This function rolls together an I/O and a timer watcher for a single |
188 | This function rolls together an I/O and a timer watcher for a single |
189 | one-shot event without the need for managing a watcher object. |
189 | one-shot event without the need for managing a watcher object. |
… | |
… | |
243 | will be called with at least two arguments: the watcher and a bitmask of |
243 | will be called with at least two arguments: the watcher and a bitmask of |
244 | received events. |
244 | received events. |
245 | |
245 | |
246 | Each watcher type has its associated bit in revents, so you can use the |
246 | Each watcher type has its associated bit in revents, so you can use the |
247 | same callback for multiple watchers. The event mask is named after the |
247 | same callback for multiple watchers. The event mask is named after the |
248 | type, i..e. EV::child sets EV::CHILD, EV::prepare sets EV::PREPARE, |
248 | type, i.e. EV::child sets EV::CHILD, EV::prepare sets EV::PREPARE, |
249 | EV::periodic sets EV::PERIODIC and so on, with the exception of I/O |
249 | EV::periodic sets EV::PERIODIC and so on, with the exception of I/O |
250 | events (which can set both EV::READ and EV::WRITE bits), and EV::timer |
250 | events (which can set both EV::READ and EV::WRITE bits), and EV::timer |
251 | (which uses EV::TIMEOUT). |
251 | (which uses EV::TIMEOUT). |
252 | |
252 | |
253 | In the rare case where one wants to create a watcher but not start it at |
253 | In the rare case where one wants to create a watcher but not start it at |
… | |
… | |
338 | |
338 | |
339 | In this case you can clear the keepalive status, which means that |
339 | In this case you can clear the keepalive status, which means that |
340 | even though your watcher is active, it won't keep "EV::loop" from |
340 | even though your watcher is active, it won't keep "EV::loop" from |
341 | returning. |
341 | returning. |
342 | |
342 | |
343 | The initial value for keepalive is true (enabled), and you cna |
343 | The initial value for keepalive is true (enabled), and you can |
344 | change it any time. |
344 | change it any time. |
345 | |
345 | |
346 | Example: Register an I/O watcher for some UDP socket but do not keep |
346 | Example: Register an I/O watcher for some UDP socket but do not keep |
347 | the event loop from running just because of that watcher. |
347 | the event loop from running just because of that watcher. |
348 | |
348 | |
… | |
… | |
748 | # make the dispatcher handle any new stuff |
748 | # make the dispatcher handle any new stuff |
749 | ... not shown |
749 | ... not shown |
750 | }; |
750 | }; |
751 | |
751 | |
752 | The callbacks of the created watchers will not be called as the |
752 | The callbacks of the created watchers will not be called as the |
753 | watchers are destroyed before this cna happen (remember EV::check |
753 | watchers are destroyed before this can happen (remember EV::check |
754 | gets called first). |
754 | gets called first). |
755 | |
755 | |
756 | The "check_ns" variant doesn't start (activate) the newly created |
756 | The "check_ns" variant doesn't start (activate) the newly created |
757 | watcher. |
757 | watcher. |
758 | |
758 | |