… | |
… | |
4 | <head> |
4 | <head> |
5 | <title>libev</title> |
5 | <title>libev</title> |
6 | <meta name="description" content="Pod documentation for libev" /> |
6 | <meta name="description" content="Pod documentation for libev" /> |
7 | <meta name="inputfile" content="<standard input>" /> |
7 | <meta name="inputfile" content="<standard input>" /> |
8 | <meta name="outputfile" content="<standard output>" /> |
8 | <meta name="outputfile" content="<standard output>" /> |
9 | <meta name="created" content="Mon Nov 12 09:32:51 2007" /> |
9 | <meta name="created" content="Mon Nov 12 09:35:17 2007" /> |
10 | <meta name="generator" content="Pod::Xhtml 1.57" /> |
10 | <meta name="generator" content="Pod::Xhtml 1.57" /> |
11 | <link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head> |
11 | <link rel="stylesheet" href="http://res.tst.eu/pod.css"/></head> |
12 | <body> |
12 | <body> |
13 | <div class="pod"> |
13 | <div class="pod"> |
14 | <!-- INDEX START --> |
14 | <!-- INDEX START --> |
… | |
… | |
550 | <pre> ev_periodic_set (&periodic, 0., 3600., 0); |
550 | <pre> ev_periodic_set (&periodic, 0., 3600., 0); |
551 | |
551 | |
552 | </pre> |
552 | </pre> |
553 | <p>This doesn't mean there will always be 3600 seconds in between triggers, |
553 | <p>This doesn't mean there will always be 3600 seconds in between triggers, |
554 | but only that the the callback will be called when the system time shows a |
554 | but only that the the callback will be called when the system time shows a |
555 | full hour (UTC), or more correct, when the system time is evenly divisible |
555 | full hour (UTC), or more correctly, when the system time is evenly divisible |
556 | by 3600.</p> |
556 | by 3600.</p> |
557 | <p>Another way to think about it (for the mathematically inclined) is that |
557 | <p>Another way to think about it (for the mathematically inclined) is that |
558 | <code>ev_periodic</code> will try to run the callback in this mode at the next possible |
558 | <code>ev_periodic</code> will try to run the callback in this mode at the next possible |
559 | time where <code>time = at (mod interval)</code>, regardless of any time jumps.</p> |
559 | time where <code>time = at (mod interval)</code>, regardless of any time jumps.</p> |
560 | </dd> |
560 | </dd> |
… | |
… | |
563 | <p>In this mode the values for <code>interval</code> and <code>at</code> are both being |
563 | <p>In this mode the values for <code>interval</code> and <code>at</code> are both being |
564 | ignored. Instead, each time the periodic watcher gets scheduled, the |
564 | ignored. Instead, each time the periodic watcher gets scheduled, the |
565 | reschedule callback will be called with the watcher as first, and the |
565 | reschedule callback will be called with the watcher as first, and the |
566 | current time as second argument.</p> |
566 | current time as second argument.</p> |
567 | <p>NOTE: <i>This callback MUST NOT stop or destroy the periodic or any other |
567 | <p>NOTE: <i>This callback MUST NOT stop or destroy the periodic or any other |
568 | periodic watcher, ever, or make any event loop modificstions</i>. If you need |
568 | periodic watcher, ever, or make any event loop modifications</i>. If you need |
569 | to stop it, return 1e30 (or so, fudge fudge) and stop it afterwards.</p> |
569 | to stop it, return <code>now + 1e30</code> (or so, fudge fudge) and stop it afterwards.</p> |
|
|
570 | <p>Also, <i><this callback must always return a time that is later than the |
|
|
571 | passed <code>now</code> value </i>>. Not even <code>now</code> itself will be ok.</p> |
570 | <p>Its prototype is c<ev_tstamp (*reschedule_cb)(struct ev_periodic *w, |
572 | <p>Its prototype is c<ev_tstamp (*reschedule_cb)(struct ev_periodic *w, |
571 | ev_tstamp now)>, e.g.:</p> |
573 | ev_tstamp now)>, e.g.:</p> |
572 | <pre> static ev_tstamp my_rescheduler (struct ev_periodic *w, ev_tstamp now) |
574 | <pre> static ev_tstamp my_rescheduler (struct ev_periodic *w, ev_tstamp now) |
573 | { |
575 | { |
574 | return now + 60.; |
576 | return now + 60.; |