Browse Source

io: update to use time_mono() for timers.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell 9 years ago
parent
commit
8cb4a3ed3d
4 changed files with 17 additions and 18 deletions
  1. 2 2
      ccan/io/io.h
  2. 5 5
      ccan/io/poll.c
  3. 3 4
      ccan/io/test/run-15-timeout.c
  4. 7 7
      ccan/io/test/run-20-io_time_override.c

+ 2 - 2
ccan/io/io.h

@@ -654,11 +654,11 @@ int io_conn_fd(const struct io_conn *conn);
  * io_time_override - override the normal call for time.
  * io_time_override - override the normal call for time.
  * @nowfn: the function to call.
  * @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
  * to use your function (eg. for debugging).  Returns the old
  * one.
  * 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.
  * io_set_debug - set synchronous mode on a connection.

+ 5 - 5
ccan/io/poll.c

@@ -16,11 +16,11 @@ static struct pollfd *pollfds = NULL;
 static struct fd **fds = NULL;
 static struct fd **fds = NULL;
 static LIST_HEAD(closing);
 static LIST_HEAD(closing);
 static LIST_HEAD(always);
 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;
 	nowfn = now;
 	return old;
 	return old;
 }
 }
@@ -262,7 +262,7 @@ void *io_loop(struct timers *timers, struct timer **expired)
 		assert(num_waiting);
 		assert(num_waiting);
 
 
 		if (timers) {
 		if (timers) {
-			struct timeabs now, first;
+			struct timemono now, first;
 
 
 			now = nowfn();
 			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. */
 			/* Now figure out how long to wait for the next one. */
 			if (timer_earliest(timers, &first)) {
 			if (timer_earliest(timers, &first)) {
 				uint64_t next;
 				uint64_t next;
-				next = time_to_msec(time_between(first, now));
+				next = time_to_msec(timemono_between(first, now));
 				if (next < INT_MAX)
 				if (next < INT_MAX)
 					ms_timeout = next;
 					ms_timeout = next;
 				else
 				else

+ 3 - 4
ccan/io/test/run-15-timeout.c

@@ -47,8 +47,7 @@ static struct io_plan *init_conn(struct io_conn *conn, struct data *d)
 	d->conn = conn;
 	d->conn = conn;
 	io_set_finish(conn, finish_ok, d);
 	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);
 	return io_read(conn, d->buf, sizeof(d->buf), no_timeout, d);
 }
 }
@@ -97,7 +96,7 @@ int main(void)
 	plan_tests(21);
 	plan_tests(21);
 	d->state = 0;
 	d->state = 0;
 	d->timeout_usec = 100000;
 	d->timeout_usec = 100000;
-	timers_init(&d->timers, time_now());
+	timers_init(&d->timers, time_mono());
 	timer_init(&d->timer);
 	timer_init(&d->timer);
 	fd = make_listen_fd(PORT, &addrinfo);
 	fd = make_listen_fd(PORT, &addrinfo);
 	ok1(fd >= 0);
 	ok1(fd >= 0);
@@ -131,7 +130,7 @@ int main(void)
 
 
 	/* One element, d->timer. */
 	/* One element, d->timer. */
 	ok1(expired == &d->timer);
 	ok1(expired == &d->timer);
-	ok1(!timers_expire(&d->timers, time_now()));
+	ok1(!timers_expire(&d->timers, time_mono()));
 	ok1(d->state == 1);
 	ok1(d->state == 1);
 
 
 	io_close(d->conn);
 	io_close(d->conn);

+ 7 - 7
ccan/io/test/run-20-io_time_override.c

@@ -45,9 +45,9 @@ static int make_listen_fd(const char *port, struct addrinfo **info)
 	return fd;
 	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;
 	return fake_time;
 }
 }
@@ -63,12 +63,12 @@ int main(void)
 	/* This is how many tests you plan to run */
 	/* This is how many tests you plan to run */
 	plan_tests(7);
 	plan_tests(7);
 
 
-	fake_time = time_now();
+	fake_time = time_mono();
 
 
 	timers_init(&timers, fake_time);
 	timers_init(&timers, fake_time);
 	timer_init(&timer);
 	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);
 	fd = make_listen_fd(PORT, &addrinfo);
 	freeaddrinfo(addrinfo);
 	freeaddrinfo(addrinfo);
@@ -77,12 +77,12 @@ int main(void)
 	ok1(l);
 	ok1(l);
 
 
 	fake_time.ts.tv_sec += 1000;
 	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(io_loop(&timers, &expired) == NULL);
 
 
 	ok1(expired == &timer);
 	ok1(expired == &timer);
 	ok1(!timers_expire(&timers, fake_time));
 	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);
 	io_close_listener(l);
 
 
 	timers_cleanup(&timers);
 	timers_cleanup(&timers);