ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev.pod
(Generate patch)

Comparing libev/ev.pod (file contents):
Revision 1.288 by root, Tue Mar 16 00:54:52 2010 UTC vs.
Revision 1.289 by root, Tue Mar 16 17:11:49 2010 UTC

1032=item C<EV_WRITE> 1032=item C<EV_WRITE>
1033 1033
1034The file descriptor in the C<ev_io> watcher has become readable and/or 1034The file descriptor in the C<ev_io> watcher has become readable and/or
1035writable. 1035writable.
1036 1036
1037=item C<EV_TIMEOUT> 1037=item C<EV_TIMER>
1038 1038
1039The C<ev_timer> watcher has timed out. 1039The C<ev_timer> watcher has timed out.
1040 1040
1041=item C<EV_PERIODIC> 1041=item C<EV_PERIODIC>
1042 1042
1764to the current time (meaning we just have some activity :), then call the 1764to the current time (meaning we just have some activity :), then call the
1765callback, which will "do the right thing" and start the timer: 1765callback, which will "do the right thing" and start the timer:
1766 1766
1767 ev_init (timer, callback); 1767 ev_init (timer, callback);
1768 last_activity = ev_now (loop); 1768 last_activity = ev_now (loop);
1769 callback (loop, timer, EV_TIMEOUT); 1769 callback (loop, timer, EV_TIMER);
1770 1770
1771And when there is some activity, simply store the current time in 1771And when there is some activity, simply store the current time in
1772C<last_activity>, no libev calls at all: 1772C<last_activity>, no libev calls at all:
1773 1773
1774 last_actiivty = ev_now (loop); 1774 last_actiivty = ev_now (loop);
3179 3179
3180If C<timeout> is less than 0, then no timeout watcher will be 3180If C<timeout> is less than 0, then no timeout watcher will be
3181started. Otherwise an C<ev_timer> watcher with after = C<timeout> (and 3181started. Otherwise an C<ev_timer> watcher with after = C<timeout> (and
3182repeat = 0) will be started. C<0> is a valid timeout. 3182repeat = 0) will be started. C<0> is a valid timeout.
3183 3183
3184The callback has the type C<void (*cb)(int revents, void *arg)> and gets 3184The callback has the type C<void (*cb)(int revents, void *arg)> and is
3185passed an C<revents> set like normal event callbacks (a combination of 3185passed an C<revents> set like normal event callbacks (a combination of
3186C<EV_ERROR>, C<EV_READ>, C<EV_WRITE> or C<EV_TIMEOUT>) and the C<arg> 3186C<EV_ERROR>, C<EV_READ>, C<EV_WRITE> or C<EV_TIMER>) and the C<arg>
3187value passed to C<ev_once>. Note that it is possible to receive I<both> 3187value passed to C<ev_once>. Note that it is possible to receive I<both>
3188a timeout and an io event at the same time - you probably should give io 3188a timeout and an io event at the same time - you probably should give io
3189events precedence. 3189events precedence.
3190 3190
3191Example: wait up to ten seconds for data to appear on STDIN_FILENO. 3191Example: wait up to ten seconds for data to appear on STDIN_FILENO.
3192 3192
3193 static void stdin_ready (int revents, void *arg) 3193 static void stdin_ready (int revents, void *arg)
3194 { 3194 {
3195 if (revents & EV_READ) 3195 if (revents & EV_READ)
3196 /* stdin might have data for us, joy! */; 3196 /* stdin might have data for us, joy! */;
3197 else if (revents & EV_TIMEOUT) 3197 else if (revents & EV_TIMER)
3198 /* doh, nothing entered */; 3198 /* doh, nothing entered */;
3199 } 3199 }
3200 3200
3201 ev_once (STDIN_FILENO, EV_READ, 10., stdin_ready, 0); 3201 ev_once (STDIN_FILENO, EV_READ, 10., stdin_ready, 0);
3202 3202
4621involves iterating over all running async watchers or all signal numbers. 4621involves iterating over all running async watchers or all signal numbers.
4622 4622
4623=back 4623=back
4624 4624
4625 4625
4626=head1 PORTING FROM 3.X TO 4.X
4627
4628The major version 4 introduced some minor incompatible changes to the API.
4629
4630=over 4
4631
4632=item C<EV_TIMEOUT> replaced by C<EV_TIMER> in C<revents>
4633
4634This is a simple rename - all other watcher types use their name
4635as revents flag, and now C<ev_timer> does, too.
4636
4637Both C<EV_TIMER> and C<EV_TIMEOUT> symbols were present in 3.x versions
4638and continue to be present for the forseeable future, so this is mostly a
4639documentation change.
4640
4641=item C<EV_MINIMAL> mechanism replaced by C<EV_FEATURES>
4642
4643The preprocessor symbol C<EV_MINIMAL> has been replaced by a different
4644mechanism, C<EV_FEATURES>. Programs using C<EV_MINIMAL> usually compile
4645and work, but the library code will of course be larger.
4646
4647=back
4648
4649
4626=head1 GLOSSARY 4650=head1 GLOSSARY
4627 4651
4628=over 4 4652=over 4
4629 4653
4630=item active 4654=item active
4651A change of state of some external event, such as data now being available 4675A change of state of some external event, such as data now being available
4652for reading on a file descriptor, time having passed or simply not having 4676for reading on a file descriptor, time having passed or simply not having
4653any other events happening anymore. 4677any other events happening anymore.
4654 4678
4655In libev, events are represented as single bits (such as C<EV_READ> or 4679In libev, events are represented as single bits (such as C<EV_READ> or
4656C<EV_TIMEOUT>). 4680C<EV_TIMER>).
4657 4681
4658=item event library 4682=item event library
4659 4683
4660A software package implementing an event model and loop. 4684A software package implementing an event model and loop.
4661 4685

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines