diff options
author | root <root> | 2008-11-03 15:13:53 +0000 |
---|---|---|
committer | root <root> | 2008-11-03 15:13:53 +0000 |
commit | 3e86d72cac7b366add3fca5f3cd6af7635ee29cd (patch) | |
tree | 0d0926ec72948fb74b2a9b35025d80e88930bf35 /ev.pod | |
parent | a8c1416d84582a44e7b20f4bffaa6d5f49c341e3 (diff) |
*** empty log message ***
Diffstat (limited to 'ev.pod')
-rw-r--r-- | ev.pod | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -2000,6 +2000,24 @@ implement this functionality, due to the requirement of having a file descriptor open on the object at all times, and detecting renames, unlinks etc. is difficult. +=head3 C<stat ()> is a synchronous operation + +Libev doesn't normally do any kind of I/O itself, and so is not blocking +the process. The exception are C<ev_stat> watchers - those call C<stat +()>, which is a synchronous operation. + +For local paths, this usually doesn't matter: unless the system is very +busy or the intervals between stat's are large, a stat call will be fast, +as the path data is suually in memory already (except when starting the +watcher). + +For networked file systems, calling C<stat ()> can block an indefinite +time due to network issues, and even under good conditions, a stat call +often takes multiple milliseconds. + +Therefore, it is best to avoid using C<ev_stat> watchers on networked +paths, although this is fully supported by libev. + =head3 The special problem of stat time resolution The C<stat ()> system call only supports full-second resolution portably, |