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

Comparing libev/ev.pod (file contents):
Revision 1.304 by root, Thu Oct 14 04:30:46 2010 UTC vs.
Revision 1.305 by root, Thu Oct 14 05:07:04 2010 UTC

4441 4441
4442=head3 C<select> is buggy 4442=head3 C<select> is buggy
4443 4443
4444All that's left is C<select>, and of course Apple found a way to fuck this 4444All that's left is C<select>, and of course Apple found a way to fuck this
4445one up as well: On OS/X, C<select> actively limits the number of file 4445one up as well: On OS/X, C<select> actively limits the number of file
4446descriptors you can pass in to 1024 - your program suddenyl crashes when 4446descriptors you can pass in to 1024 - your program suddenly crashes when
4447you use more. 4447you use more.
4448 4448
4449There is an undocumented "workaround" for this - defining 4449There is an undocumented "workaround" for this - defining
4450C<_DARWIN_UNLIMITED_SELECT>, which libev tries to use, so select I<should> 4450C<_DARWIN_UNLIMITED_SELECT>, which libev tries to use, so select I<should>
4451work on OS/X. 4451work on OS/X.
4468this mechanism is very buggy. If you run into high CPU usage, your program 4468this mechanism is very buggy. If you run into high CPU usage, your program
4469freezes or you get a large number of spurious wakeups, make sure you have 4469freezes or you get a large number of spurious wakeups, make sure you have
4470all the relevant and latest kernel patches applied. No, I don't know which 4470all the relevant and latest kernel patches applied. No, I don't know which
4471ones, but there are multiple ones. 4471ones, but there are multiple ones.
4472 4472
4473If you can't get it to work, you can try running the program with 4473If you can't get it to work, you can try running the program by setting
4474C<LIBEV_FLAGS=3> to only allow C<poll> and C<select> backends. 4474the environment variable C<LIBEV_FLAGS=3> to only allow C<poll> and
4475C<select> backends.
4475 4476
4476=head2 AIX POLL BUG 4477=head2 AIX POLL BUG
4477 4478
4478AIX unfortunately has a broken C<poll.h> header. Libev works around 4479AIX unfortunately has a broken C<poll.h> header. Libev works around
4479this by trying to avoid the poll backend altogether (i.e. it's not even 4480this by trying to avoid the poll backend altogether (i.e. it's not even

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines