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

Comparing libev/ev.pod (file contents):
Revision 1.108 by root, Mon Dec 24 10:39:21 2007 UTC vs.
Revision 1.110 by root, Tue Dec 25 07:05:45 2007 UTC

983In general you can register as many read and/or write event watchers per 983In general you can register as many read and/or write event watchers per
984fd as you want (as long as you don't confuse yourself). Setting all file 984fd as you want (as long as you don't confuse yourself). Setting all file
985descriptors to non-blocking mode is also usually a good idea (but not 985descriptors to non-blocking mode is also usually a good idea (but not
986required if you know what you are doing). 986required if you know what you are doing).
987 987
988You have to be careful with dup'ed file descriptors, though. Some backends
989(the linux epoll backend is a notable example) cannot handle dup'ed file
990descriptors correctly if you register interest in two or more fds pointing
991to the same underlying file/socket/etc. description (that is, they share
992the same underlying "file open").
993
994If you must do this, then force the use of a known-to-be-good backend 988If you must do this, then force the use of a known-to-be-good backend
995(at the time of this writing, this includes only C<EVBACKEND_SELECT> and 989(at the time of this writing, this includes only C<EVBACKEND_SELECT> and
996C<EVBACKEND_POLL>). 990C<EVBACKEND_POLL>).
997 991
998Another thing you have to watch out for is that it is quite easy to 992Another thing you have to watch out for is that it is quite easy to
1033 1027
1034=head3 The special problem of dup'ed file descriptors 1028=head3 The special problem of dup'ed file descriptors
1035 1029
1036Some backends (e.g. epoll), cannot register events for file descriptors, 1030Some backends (e.g. epoll), cannot register events for file descriptors,
1037but only events for the underlying file descriptions. That means when you 1031but only events for the underlying file descriptions. That means when you
1038have C<dup ()>'ed file descriptors and register events for them, only one 1032have C<dup ()>'ed file descriptors or weirder constellations, and register
1039file descriptor might actually receive events. 1033events for them, only one file descriptor might actually receive events.
1040 1034
1041There is no workaround possible except not registering events 1035There is no workaround possible except not registering events
1042for potentially C<dup ()>'ed file descriptors, or to resort to 1036for potentially C<dup ()>'ed file descriptors, or to resort to
1043C<EVBACKEND_SELECT> or C<EVBACKEND_POLL>. 1037C<EVBACKEND_SELECT> or C<EVBACKEND_POLL>.
1044 1038
2501be detected at runtime. 2495be detected at runtime.
2502 2496
2503=item EV_H 2497=item EV_H
2504 2498
2505The name of the F<ev.h> header file used to include it. The default if 2499The name of the F<ev.h> header file used to include it. The default if
2506undefined is C<< <ev.h> >> in F<event.h> and C<"ev.h"> in F<ev.c>. This 2500undefined is C<"ev.h"> in F<event.h> and F<ev.c>. This can be used to
2507can be used to virtually rename the F<ev.h> header file in case of conflicts. 2501virtually rename the F<ev.h> header file in case of conflicts.
2508 2502
2509=item EV_CONFIG_H 2503=item EV_CONFIG_H
2510 2504
2511If C<EV_STANDALONE> isn't C<1>, this variable can be used to override 2505If C<EV_STANDALONE> isn't C<1>, this variable can be used to override
2512F<ev.c>'s idea of where to find the F<config.h> file, similarly to 2506F<ev.c>'s idea of where to find the F<config.h> file, similarly to
2513C<EV_H>, above. 2507C<EV_H>, above.
2514 2508
2515=item EV_EVENT_H 2509=item EV_EVENT_H
2516 2510
2517Similarly to C<EV_H>, this macro can be used to override F<event.c>'s idea 2511Similarly to C<EV_H>, this macro can be used to override F<event.c>'s idea
2518of how the F<event.h> header can be found. 2512of how the F<event.h> header can be found, the dfeault is C<"event.h">.
2519 2513
2520=item EV_PROTOTYPES 2514=item EV_PROTOTYPES
2521 2515
2522If defined to be C<0>, then F<ev.h> will not define any function 2516If defined to be C<0>, then F<ev.h> will not define any function
2523prototypes, but still define all the structs and other symbols. This is 2517prototypes, but still define all the structs and other symbols. This is

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines