… | |
… | |
4423 | =head3 C<kqueue> is buggy |
4423 | =head3 C<kqueue> is buggy |
4424 | |
4424 | |
4425 | The kqueue syscall is broken in all known versions - most versions support |
4425 | The kqueue syscall is broken in all known versions - most versions support |
4426 | only sockets, many support pipes. |
4426 | only sockets, many support pipes. |
4427 | |
4427 | |
|
|
4428 | Libev tries to work around this by not using C<kqueue> by default on |
|
|
4429 | this rotten platform, but of course you can still ask for it when creating |
|
|
4430 | a loop. |
|
|
4431 | |
4428 | =head3 C<poll> is buggy |
4432 | =head3 C<poll> is buggy |
4429 | |
4433 | |
4430 | Instead of fixing C<kqueue>, Apple replaced their (working) C<poll> |
4434 | Instead of fixing C<kqueue>, Apple replaced their (working) C<poll> |
4431 | implementation by something calling C<kqueue> internally around the 10.5.6 |
4435 | implementation by something calling C<kqueue> internally around the 10.5.6 |
4432 | release, so now C<kqueue> I<and> C<poll> are broken. |
4436 | release, so now C<kqueue> I<and> C<poll> are broken. |
4433 | |
4437 | |
4434 | Libev tries to work around this by neither using C<kqueue> nor C<poll> by |
4438 | Libev tries to work around this by not using C<poll> by default on |
4435 | default on this rotten platform, but of course you cna still ask for them |
4439 | this rotten platform, but of course you can still ask for it when creating |
4436 | when creating a loop. |
4440 | a loop. |
4437 | |
4441 | |
4438 | =head3 C<select> is buggy |
4442 | =head3 C<select> is buggy |
4439 | |
4443 | |
4440 | All that's left is C<select>, and of course Apple found a way to fuck this |
4444 | All that's left is C<select>, and of course Apple found a way to fuck this |
4441 | one up as well: On OS/X, C<select> actively limits the number of file |
4445 | one up as well: On OS/X, C<select> actively limits the number of file |