… | |
… | |
1331 | |
1331 | |
1332 | Summary |
1332 | Summary |
1333 | * C-based event loops perform very well with small number of watchers, |
1333 | * C-based event loops perform very well with small number of watchers, |
1334 | as the management overhead dominates. |
1334 | as the management overhead dominates. |
1335 | |
1335 | |
|
|
1336 | SIGNALS |
|
|
1337 | AnyEvent currently installs handlers for these signals: |
|
|
1338 | |
|
|
1339 | SIGCHLD |
|
|
1340 | A handler for "SIGCHLD" is installed by AnyEvent's child watcher |
|
|
1341 | emulation for event loops that do not support them natively. Also, |
|
|
1342 | some event loops install a similar handler. |
|
|
1343 | |
|
|
1344 | SIGPIPE |
|
|
1345 | A no-op handler is installed for "SIGPIPE" when $SIG{PIPE} is |
|
|
1346 | "undef" when AnyEvent gets loaded. |
|
|
1347 | |
|
|
1348 | The rationale for this is that AnyEvent users usually do not really |
|
|
1349 | depend on SIGPIPE delivery (which is purely an optimisation for |
|
|
1350 | shell use, or badly-written programs), but "SIGPIPE" can cause |
|
|
1351 | spurious and rare program exits as a lot of people do not expect |
|
|
1352 | "SIGPIPE" when writing to some random socket. |
|
|
1353 | |
|
|
1354 | The rationale for installing a no-op handler as opposed to ignoring |
|
|
1355 | it is that this way, the handler will be restored to defaults on |
|
|
1356 | exec. |
|
|
1357 | |
|
|
1358 | Feel free to install your own handler, or reset it to defaults. |
|
|
1359 | |
1336 | FORK |
1360 | FORK |
1337 | Most event libraries are not fork-safe. The ones who are usually are |
1361 | Most event libraries are not fork-safe. The ones who are usually are |
1338 | because they rely on inefficient but fork-safe "select" or "poll" calls. |
1362 | because they rely on inefficient but fork-safe "select" or "poll" calls. |
1339 | Only EV is fully fork-aware. |
1363 | Only EV is fully fork-aware. |
1340 | |
1364 | |