Commit a7f2b2c4 authored by Rusty Russell's avatar Rusty Russell

time: timemono_add.

Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 8b83ecf3
......@@ -7,7 +7,7 @@ int main(void)
struct timemono t1, t2;
struct timerel t3;
plan_tests(3);
plan_tests(5);
/* Test time_mono */
t1 = time_mono();
......@@ -21,5 +21,8 @@ int main(void)
ok1(time_less(timemono_between(t1, t2), t3));
ok1(time_less(timemono_since(t1), t3));
ok1(timemono_add(t1, t3).ts.tv_sec == t1.ts.tv_sec + 1);
ok1(timemono_add(t2, t3).ts.tv_nsec == t2.ts.tv_nsec);
return exit_status();
}
......@@ -388,6 +388,28 @@ static inline struct timeabs timeabs_add(struct timeabs a, struct timerel b)
return t;
}
/**
* timemono_add - add a relative to a monotonic time
* @a: the monotonic time.
* @b: a relative time.
*
* The times must not overflow, or the results are undefined.
*
* Example:
* // We do one every second.
* static struct timemono next_timem(void)
* {
* return timemono_add(time_mono(), time_from_msec(1000));
* }
*/
static inline struct timemono timemono_add(struct timemono a, struct timerel b)
{
struct timemono t;
t.ts = time_add_(a.ts, b.ts);
return t;
}
/**
* timerel_add - add two relative times
* @a: one relative time.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment