io: update to use time_mono() for timers.
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 31 Oct 2016 00:54:28 +0000 (11:24 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 31 Oct 2016 00:54:28 +0000 (11:24 +1030)
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccan/io/io.h
ccan/io/poll.c
ccan/io/test/run-15-timeout.c
ccan/io/test/run-20-io_time_override.c

index 68dd56876333293989411ccbb7206acf6001e766..e24beec4666a37284b72f545c735989119381ce5 100644 (file)
@@ -654,11 +654,11 @@ int io_conn_fd(const struct io_conn *conn);
  * io_time_override - override the normal call for time.
  * @nowfn: the function to call.
  *
- * io usually uses time_now() internally, but this forces it
+ * io usually uses time_mono() internally, but this forces it
  * to use your function (eg. for debugging).  Returns the old
  * one.
  */
-struct timeabs (*io_time_override(struct timeabs (*now)(void)))(void);
+struct timemono (*io_time_override(struct timemono (*now)(void)))(void);
 
 /**
  * io_set_debug - set synchronous mode on a connection.
index cddc3cacd266e5b80392d91af367d689da093bd6..36af33ef0854de3323c8f29c4dc522c976091764 100644 (file)
@@ -16,11 +16,11 @@ static struct pollfd *pollfds = NULL;
 static struct fd **fds = NULL;
 static LIST_HEAD(closing);
 static LIST_HEAD(always);
-static struct timeabs (*nowfn)(void) = time_now;
+static struct timemono (*nowfn)(void) = time_mono;
 
-struct timeabs (*io_time_override(struct timeabs (*now)(void)))(void)
+struct timemono (*io_time_override(struct timemono (*now)(void)))(void)
 {
-       struct timeabs (*old)(void) = nowfn;
+       struct timemono (*old)(void) = nowfn;
        nowfn = now;
        return old;
 }
@@ -262,7 +262,7 @@ void *io_loop(struct timers *timers, struct timer **expired)
                assert(num_waiting);
 
                if (timers) {
-                       struct timeabs now, first;
+                       struct timemono now, first;
 
                        now = nowfn();
 
@@ -274,7 +274,7 @@ void *io_loop(struct timers *timers, struct timer **expired)
                        /* Now figure out how long to wait for the next one. */
                        if (timer_earliest(timers, &first)) {
                                uint64_t next;
-                               next = time_to_msec(time_between(first, now));
+                               next = time_to_msec(timemono_between(first, now));
                                if (next < INT_MAX)
                                        ms_timeout = next;
                                else
index 5709ddaa8a25416d6bb56c2a7d21ce81688e0e52..a4ab23add0abed3b0a3bcc5d536983db458ce8b5 100644 (file)
@@ -47,8 +47,7 @@ static struct io_plan *init_conn(struct io_conn *conn, struct data *d)
        d->conn = conn;
        io_set_finish(conn, finish_ok, d);
 
-       timer_add(&d->timers, &d->timer,
-                 timeabs_add(time_now(), time_from_usec(d->timeout_usec)));
+       timer_addrel(&d->timers, &d->timer, time_from_usec(d->timeout_usec));
 
        return io_read(conn, d->buf, sizeof(d->buf), no_timeout, d);
 }
@@ -97,7 +96,7 @@ int main(void)
        plan_tests(21);
        d->state = 0;
        d->timeout_usec = 100000;
-       timers_init(&d->timers, time_now());
+       timers_init(&d->timers, time_mono());
        timer_init(&d->timer);
        fd = make_listen_fd(PORT, &addrinfo);
        ok1(fd >= 0);
@@ -131,7 +130,7 @@ int main(void)
 
        /* One element, d->timer. */
        ok1(expired == &d->timer);
-       ok1(!timers_expire(&d->timers, time_now()));
+       ok1(!timers_expire(&d->timers, time_mono()));
        ok1(d->state == 1);
 
        io_close(d->conn);
index bf493c9912cf3ff2dd00033b3adfd8d09f434e34..c0b607a74cfdf09cb6a6c703da40b0ae794fc3bd 100644 (file)
@@ -45,9 +45,9 @@ static int make_listen_fd(const char *port, struct addrinfo **info)
        return fd;
 }
 
-static struct timeabs fake_time;
+static struct timemono fake_time;
 
-static struct timeabs get_fake_time(void)
+static struct timemono get_fake_time(void)
 {
        return fake_time;
 }
@@ -63,12 +63,12 @@ int main(void)
        /* This is how many tests you plan to run */
        plan_tests(7);
 
-       fake_time = time_now();
+       fake_time = time_mono();
 
        timers_init(&timers, fake_time);
        timer_init(&timer);
-       timer_add(&timers, &timer,
-                 timeabs_add(fake_time, time_from_sec(1000)));
+       timer_addmono(&timers, &timer,
+                     timemono_add(fake_time, time_from_sec(1000)));
 
        fd = make_listen_fd(PORT, &addrinfo);
        freeaddrinfo(addrinfo);
@@ -77,12 +77,12 @@ int main(void)
        ok1(l);
 
        fake_time.ts.tv_sec += 1000;
-       ok1(io_time_override(get_fake_time) == time_now);
+       ok1(io_time_override(get_fake_time) == time_mono);
        ok1(io_loop(&timers, &expired) == NULL);
 
        ok1(expired == &timer);
        ok1(!timers_expire(&timers, fake_time));
-       ok1(io_time_override(time_now) == get_fake_time);
+       ok1(io_time_override(time_mono) == get_fake_time);
        io_close_listener(l);
 
        timers_cleanup(&timers);