… | |
… | |
131 | .\} |
131 | .\} |
132 | .rm #[ #] #H #V #F C |
132 | .rm #[ #] #H #V #F C |
133 | .\" ======================================================================== |
133 | .\" ======================================================================== |
134 | .\" |
134 | .\" |
135 | .IX Title "LIBEV 3" |
135 | .IX Title "LIBEV 3" |
136 | .TH LIBEV 3 "2015-12-20" "libev-4.20" "libev - high performance full featured event loop" |
136 | .TH LIBEV 3 "2016-11-16" "libev-4.23" "libev - high performance full featured event loop" |
137 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
137 | .\" For nroff, turn off justification. Always turn off hyphenation; it makes |
138 | .\" way too many mistakes in technical documents. |
138 | .\" way too many mistakes in technical documents. |
139 | .if n .ad l |
139 | .if n .ad l |
140 | .nh |
140 | .nh |
141 | .SH "NAME" |
141 | .SH "NAME" |
… | |
… | |
2346 | Periodic watchers are also timers of a kind, but they are very versatile |
2346 | Periodic watchers are also timers of a kind, but they are very versatile |
2347 | (and unfortunately a bit complex). |
2347 | (and unfortunately a bit complex). |
2348 | .PP |
2348 | .PP |
2349 | Unlike \f(CW\*(C`ev_timer\*(C'\fR, periodic watchers are not based on real time (or |
2349 | Unlike \f(CW\*(C`ev_timer\*(C'\fR, periodic watchers are not based on real time (or |
2350 | relative time, the physical time that passes) but on wall clock time |
2350 | relative time, the physical time that passes) but on wall clock time |
2351 | (absolute time, the thing you can read on your calender or clock). The |
2351 | (absolute time, the thing you can read on your calendar or clock). The |
2352 | difference is that wall clock time can run faster or slower than real |
2352 | difference is that wall clock time can run faster or slower than real |
2353 | time, and time jumps are not uncommon (e.g. when you adjust your |
2353 | time, and time jumps are not uncommon (e.g. when you adjust your |
2354 | wrist-watch). |
2354 | wrist-watch). |
2355 | .PP |
2355 | .PP |
2356 | You can tell a periodic watcher to trigger after some specific point |
2356 | You can tell a periodic watcher to trigger after some specific point |
… | |
… | |
5412 | Libev assumes not only that all watcher pointers have the same internal |
5412 | Libev assumes not only that all watcher pointers have the same internal |
5413 | structure (guaranteed by \s-1POSIX\s0 but not by \s-1ISO C\s0 for example), but it also |
5413 | structure (guaranteed by \s-1POSIX\s0 but not by \s-1ISO C\s0 for example), but it also |
5414 | assumes that the same (machine) code can be used to call any watcher |
5414 | assumes that the same (machine) code can be used to call any watcher |
5415 | callback: The watcher callbacks have different type signatures, but libev |
5415 | callback: The watcher callbacks have different type signatures, but libev |
5416 | calls them using an \f(CW\*(C`ev_watcher *\*(C'\fR internally. |
5416 | calls them using an \f(CW\*(C`ev_watcher *\*(C'\fR internally. |
|
|
5417 | .IP "null pointers and integer zero are represented by 0 bytes" 4 |
|
|
5418 | .IX Item "null pointers and integer zero are represented by 0 bytes" |
|
|
5419 | Libev uses \f(CW\*(C`memset\*(C'\fR to initialise structs and arrays to \f(CW0\fR bytes, and |
|
|
5420 | relies on this setting pointers and integers to null. |
5417 | .IP "pointer accesses must be thread-atomic" 4 |
5421 | .IP "pointer accesses must be thread-atomic" 4 |
5418 | .IX Item "pointer accesses must be thread-atomic" |
5422 | .IX Item "pointer accesses must be thread-atomic" |
5419 | Accessing a pointer value must be atomic, it must both be readable and |
5423 | Accessing a pointer value must be atomic, it must both be readable and |
5420 | writable in one piece \- this is the case on all current architectures. |
5424 | writable in one piece \- this is the case on all current architectures. |
5421 | .ie n .IP """sig_atomic_t volatile"" must be thread-atomic as well" 4 |
5425 | .ie n .IP """sig_atomic_t volatile"" must be thread-atomic as well" 4 |