ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent/README
(Generate patch)

Comparing AnyEvent/README (file contents):
Revision 1.68 by root, Fri Aug 26 18:09:04 2011 UTC vs.
Revision 1.69 by root, Tue Oct 4 17:45:04 2011 UTC

403 will not restart syscalls (that includes Async::Interrupt and AnyEvent's 403 will not restart syscalls (that includes Async::Interrupt and AnyEvent's
404 pure perl implementation). 404 pure perl implementation).
405 405
406 Safe/Unsafe Signals 406 Safe/Unsafe Signals
407 Perl signals can be either "safe" (synchronous to opcode handling) or 407 Perl signals can be either "safe" (synchronous to opcode handling) or
408 "unsafe" (asynchronous) - the former might get delayed indefinitely, the 408 "unsafe" (asynchronous) - the former might delay signal delivery
409 latter might corrupt your memory. 409 indefinitely, the latter might corrupt your memory.
410 410
411 AnyEvent signal handlers are, in addition, synchronous to the event 411 AnyEvent signal handlers are, in addition, synchronous to the event
412 loop, i.e. they will not interrupt your running perl program but will 412 loop, i.e. they will not interrupt your running perl program but will
413 only be called as part of the normal event handling (just like timer, 413 only be called as part of the normal event handling (just like timer,
414 I/O etc. callbacks, too). 414 I/O etc. callbacks, too).
416 Signal Races, Delays and Workarounds 416 Signal Races, Delays and Workarounds
417 Many event loops (e.g. Glib, Tk, Qt, IO::Async) do not support attaching 417 Many event loops (e.g. Glib, Tk, Qt, IO::Async) do not support attaching
418 callbacks to signals in a generic way, which is a pity, as you cannot do 418 callbacks to signals in a generic way, which is a pity, as you cannot do
419 race-free signal handling in perl, requiring C libraries for this. 419 race-free signal handling in perl, requiring C libraries for this.
420 AnyEvent will try to do its best, which means in some cases, signals 420 AnyEvent will try to do its best, which means in some cases, signals
421 will be delayed. The maximum time a signal might be delayed is specified 421 will be delayed. The maximum time a signal might be delayed is 10
422 in $AnyEvent::MAX_SIGNAL_LATENCY (default: 10 seconds). This variable 422 seconds by default, but can be overriden via
423 can be changed only before the first signal watcher is created, and 423 $ENV{PERL_ANYEVENT_MAX_SIGNAL_LATENCY} or $AnyEvent::MAX_SIGNAL_LATENCY
424 should be left alone otherwise. This variable determines how often 424 - see the Ö<ENVIRONMENT VARIABLES> section for details.
425 AnyEvent polls for signals (in case a wake-up was missed). Higher values
426 will cause fewer spurious wake-ups, which is better for power and CPU
427 saving.
428 425
429 All these problems can be avoided by installing the optional 426 All these problems can be avoided by installing the optional
430 Async::Interrupt module, which works with most event loops. It will not 427 Async::Interrupt module, which works with most event loops. It will not
431 work with inherently broken event loops such as Event or Event::Lib (and 428 work with inherently broken event loops such as Event or Event::Lib (and
432 not with POE currently, as POE does its own workaround with one-second
433 latency). For those, you just have to suffer the delays. 429 not with POE currently). For those, you just have to suffer the delays.
434 430
435 CHILD PROCESS WATCHERS 431 CHILD PROCESS WATCHERS
436 $w = AnyEvent->child (pid => <process id>, cb => <callback>); 432 $w = AnyEvent->child (pid => <process id>, cb => <callback>);
437 433
438 You can also watch for a child process exit and catch its exit status. 434 You can also watch for a child process exit and catch its exit status.
1010 If AnyEvent::Log is not loaded then this function makes a simple 1006 If AnyEvent::Log is not loaded then this function makes a simple
1011 test to see whether the message will be logged. If the test succeeds 1007 test to see whether the message will be logged. If the test succeeds
1012 it will load AnyEvent::Log and call "AnyEvent::Log::log" - 1008 it will load AnyEvent::Log and call "AnyEvent::Log::log" -
1013 consequently, look at the AnyEvent::Log documentation for details. 1009 consequently, look at the AnyEvent::Log documentation for details.
1014 1010
1015 If the test fails it will simply return. 1011 If the test fails it will simply return. Right now this happens when
1012 a numerical loglevel is used and it is larger than the level
1013 specified via $ENV{PERL_ANYEVENT_VERBOSE}.
1016 1014
1017 If you want to sprinkle loads of logging calls around your code, 1015 If you want to sprinkle loads of logging calls around your code,
1018 consider creating a logger callback with the "AnyEvent::Log::logger" 1016 consider creating a logger callback with the "AnyEvent::Log::logger"
1019 function, which can reduce typing, codesize and can reduce the 1017 function, which can reduce typing, codesize and can reduce the
1020 logging overhead enourmously. 1018 logging overhead enourmously.
1216 This ensures that child processes will not see the "AE_" variables. 1214 This ensures that child processes will not see the "AE_" variables.
1217 1215
1218 The following environment variables are currently known to AnyEvent: 1216 The following environment variables are currently known to AnyEvent:
1219 1217
1220 "PERL_ANYEVENT_VERBOSE" 1218 "PERL_ANYEVENT_VERBOSE"
1221 By default, AnyEvent will be completely silent except in fatal 1219 By default, AnyEvent will only log messages with loglevel 3
1222 conditions. You can set this environment variable to make AnyEvent 1220 ("critical") or higher (see AnyEvent::Log). You can set this
1223 more talkative. If you want to do more than just set the global 1221 environment variable to a numerical loglevel to make AnyEvent more
1222 (or less) talkative.
1223
1224 If you want to do more than just set the global logging level you
1224 logging level you should have a look at "PERL_ANYEVENT_LOG", which 1225 should have a look at "PERL_ANYEVENT_LOG", which allows much more
1225 allows much more complex specifications. 1226 complex specifications.
1226 1227
1228 When set to 0 ("off"), then no messages whatsoever will be logged
1229 with the default logging settings.
1230
1227 When set to 5 or higher (warn), causes AnyEvent to warn about 1231 When set to 5 or higher ("warn"), causes AnyEvent to warn about
1228 unexpected conditions, such as not being able to load the event 1232 unexpected conditions, such as not being able to load the event
1229 model specified by "PERL_ANYEVENT_MODEL", or a guard callback 1233 model specified by "PERL_ANYEVENT_MODEL", or a guard callback
1230 throwing an exception - this is the minimum recommended level. 1234 throwing an exception - this is the minimum recommended level.
1231 1235
1232 When set to 7 or higher (info), cause AnyEvent to report which event 1236 When set to 7 or higher (info), cause AnyEvent to report which event
1267 is definitely recommended to keep it off in production. Keeping 1271 is definitely recommended to keep it off in production. Keeping
1268 "PERL_ANYEVENT_STRICT=1" in your environment while developing 1272 "PERL_ANYEVENT_STRICT=1" in your environment while developing
1269 programs can be very useful, however. 1273 programs can be very useful, however.
1270 1274
1271 "PERL_ANYEVENT_DEBUG_SHELL" 1275 "PERL_ANYEVENT_DEBUG_SHELL"
1272 If this env variable is set, then its contents will be interpreted 1276 If this env variable is nonempty, then its contents will be
1273 by "AnyEvent::Socket::parse_hostport" (after replacing every 1277 interpreted by "AnyEvent::Socket::parse_hostport" and
1274 occurance of $$ by the process pid) and an "AnyEvent::Debug::shell" 1278 "AnyEvent::Debug::shell" (after replacing every occurance of $$ by
1275 is bound on that port. The shell object is saved in 1279 the process pid). The shell object is saved in
1276 $AnyEvent::Debug::SHELL. 1280 $AnyEvent::Debug::SHELL.
1277 1281
1278 This happens when the first watcher is created. 1282 This happens when the first watcher is created.
1279 1283
1280 For example, to bind a debug shell on a unix domain socket in 1284 For example, to bind a debug shell on a unix domain socket in
1281 /tmp/debug<pid>.sock, you could use this: 1285 /tmp/debug<pid>.sock, you could use this:
1282 1286
1283 PERL_ANYEVENT_DEBUG_SHELL=/tmp/debug\$\$.sock perlprog 1287 PERL_ANYEVENT_DEBUG_SHELL=/tmp/debug\$\$.sock perlprog
1288 # connect with e.g.: socat readline /tmp/debug123.sock
1284 1289
1290 Or to bind to tcp port 4545 on localhost:
1291
1292 PERL_ANYEVENT_DEBUG_SHELL=127.0.0.1:4545 perlprog
1293 # connect with e.g.: telnet localhost 4545
1294
1285 Note that creating sockets in /tmp is very unsafe on multiuser 1295 Note that creating sockets in /tmp or on localhost is very unsafe on
1286 systems. 1296 multiuser systems.
1287 1297
1288 "PERL_ANYEVENT_DEBUG_WRAP" 1298 "PERL_ANYEVENT_DEBUG_WRAP"
1289 Can be set to 0, 1 or 2 and enables wrapping of all watchers for 1299 Can be set to 0, 1 or 2 and enables wrapping of all watchers for
1290 debugging purposes. See "AnyEvent::Debug::wrap" for details. 1300 debugging purposes. See "AnyEvent::Debug::wrap" for details.
1291 1301
1351 1361
1352 "PERL_ANYEVENT_MAX_OUTSTANDING_DNS" 1362 "PERL_ANYEVENT_MAX_OUTSTANDING_DNS"
1353 The default value for the "max_outstanding" parameter for the 1363 The default value for the "max_outstanding" parameter for the
1354 default DNS resolver - this is the maximum number of parallel DNS 1364 default DNS resolver - this is the maximum number of parallel DNS
1355 requests that are sent to the DNS server. 1365 requests that are sent to the DNS server.
1366
1367 "PERL_ANYEVENT_MAX_SIGNAL_LATENCY"
1368 Perl has inherently racy signal handling (you can basically choose
1369 between losing signals and memory corruption) - pure perl event
1370 loops (including "AnyEvent::Loop", when "Async::Interrupt" isn't
1371 available) therefore have to poll regularly to avoid losing signals.
1372
1373 Some event loops are racy, but don't poll regularly, and some event
1374 loops are written in C but are still racy. For those event loops,
1375 AnyEvent installs a timer that regularly wakes up the event loop.
1376
1377 By default, the interval for this timer is 10 seconds, but you can
1378 override this delay with this environment variable (or by setting
1379 the $AnyEvent::MAX_SIGNAL_LATENCY variable before creating signal
1380 watchers).
1381
1382 Lower values increase CPU (and energy) usage, higher values can
1383 introduce long delays when reaping children or waiting for signals.
1384
1385 The AnyEvent::Async module, if available, will be used to avoid this
1386 polling (with most event loops).
1356 1387
1357 "PERL_ANYEVENT_RESOLV_CONF" 1388 "PERL_ANYEVENT_RESOLV_CONF"
1358 The absolute path to a resolv.conf-style file to use instead of 1389 The absolute path to a resolv.conf-style file to use instead of
1359 /etc/resolv.conf (or the OS-specific configuration) in the default 1390 /etc/resolv.conf (or the OS-specific configuration) in the default
1360 resolver, or the empty string to select the default configuration. 1391 resolver, or the empty string to select the default configuration.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines