… | |
… | |
66 | print <<EOF; |
66 | print <<EOF; |
67 | |
67 | |
68 | *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** |
68 | *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** |
69 | |
69 | |
70 | |
70 | |
|
|
71 | Another useful bit of functionality is the Linux eventfd, which is useful |
|
|
72 | for faster signal handling (don't care) and intra-thread communications |
|
|
73 | (mostly useful for embedding). Kernel support for this will be probed at |
|
|
74 | runtime, but your libc must contain the necessary wrapper. Glibc 2.7 and |
|
|
75 | later should have this wrapper. |
|
|
76 | |
|
|
77 | EOF |
|
|
78 | |
|
|
79 | $DEFINE .= " -DEV_USE_EVENTFD=" . (0 + (prompt ("Enable linux eventfd support (y/n)?", (-e "/usr/include/sys/eventfd.h") || $ENV{EV_EVENTFD} ? "y" : "n") =~ /[yY]/)); |
|
|
80 | |
|
|
81 | print <<EOF; |
|
|
82 | |
|
|
83 | *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** |
|
|
84 | |
|
|
85 | |
71 | EV can use various backends with various portability issue. The select |
86 | EV can use various backends with various portability issue. The select |
72 | backend is the most portable and makes for a good fallback, but it can be |
87 | backend is the most portable and makes for a good fallback, but it can be |
73 | limited to a low number of file descriptors and/or might not compile. If |
88 | limited to a low number of file descriptors and/or might not compile. If |
74 | you have problems with compiling ev_select.c, you might try to play around |
89 | you have problems with compiling ev_select.c, you might try to play around |
75 | with disabling it here, or forcing it to use the fd_set provided by your |
90 | with disabling it here, or forcing it to use the fd_set provided by your |
… | |
… | |
138 | |
153 | |
139 | Similarly to the epoll backend above, EV can take advantage of kqueue on |
154 | Similarly to the epoll backend above, EV can take advantage of kqueue on |
140 | many BSD systems. Support for kqueue will be detected at runtime, with a |
155 | many BSD systems. Support for kqueue will be detected at runtime, with a |
141 | safe fallback to other methods when it cannot be used. |
156 | safe fallback to other methods when it cannot be used. |
142 | |
157 | |
143 | Note that kqueue is broken on most operating systems, so it defaults to |
158 | Note that kqueue is broken on most operating systems, so by default it |
144 | 'n' on everything but netbsd. Here is what we know: |
159 | won't be used on many platforms, but you can still create your own event |
|
|
160 | loop with qkueue backend. |
|
|
161 | |
|
|
162 | Here is what we know: |
145 | |
163 | |
146 | NetBSD: partially working in at least 3.1. Yeah! :) |
164 | NetBSD: partially working in at least 3.1. Yeah! :) |
147 | FreeBSD: broken on at least 6.2-STABLE, |
165 | FreeBSD: broken on at least 6.2-STABLE, |
148 | sockets *likely* work, ptys definitely don't. |
166 | sockets *likely* work, ptys definitely don't. |
149 | OpenBSD: reports indicate that it likely doesn't work |
167 | OpenBSD: reports indicate that it likely doesn't work |
… | |
… | |
232 | PM => { |
250 | PM => { |
233 | 'EV.pm' => '$(INST_LIBDIR)/EV.pm', |
251 | 'EV.pm' => '$(INST_LIBDIR)/EV.pm', |
234 | 'EV/EVAPI.h' => '$(INST_LIBDIR)/EV/EVAPI.h', |
252 | 'EV/EVAPI.h' => '$(INST_LIBDIR)/EV/EVAPI.h', |
235 | 'EV/MakeMaker.pm' => '$(INST_LIBDIR)/EV/MakeMaker.pm', |
253 | 'EV/MakeMaker.pm' => '$(INST_LIBDIR)/EV/MakeMaker.pm', |
236 | 'libev/ev.h' => '$(INST_LIBDIR)/EV/ev.h', |
254 | 'libev/ev.h' => '$(INST_LIBDIR)/EV/ev.h', |
|
|
255 | 'libev/ev.pod' => '$(INST_LIBDIR)/EV/c_doc.pod', |
237 | }, |
256 | }, |
|
|
257 | MAN3PODS => { |
|
|
258 | 'EV.pm' => '$(INST_MAN3DIR)/EV.$(MAN3EXT)', |
|
|
259 | 'EV/MakeMaker.pm' => '$(INST_MAN3DIR)/EV::MakeMaker.$(MAN3EXT)', |
|
|
260 | 'libev/ev.pod' => '$(INST_MAN3DIR)/EV::c_doc.$(MAN3EXT)', |
|
|
261 | }, |
238 | ); |
262 | ); |
239 | |
263 | |
240 | |
264 | |