timeval: Call coverage_clear() before coverage_log() in time_poll().
authorBen Pfaff <blp@nicira.com>
Mon, 23 Sep 2013 17:13:54 +0000 (10:13 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 10 Oct 2013 00:02:57 +0000 (17:02 -0700)
time_poll() calls log_poll_interval(), which in some circumstances calls
coverage_log().  Before this commit, time_poll() also called
coverage_clear() after log_poll_interval().  This made sense before commit
857165b5fd26 (coverage: Make thread-safe.), because coverage_log() would
log the most recent main loop's coverage counters separately and calling
coverage_clear() beforehand would zero out those counters.  However, it
doesn't make sense any longer because the most recent loop's counters are
no longer separately logged and in fact this practice now means that the
most recent loop's counters are omitted from the logged counters.

Therefore, this commit moves the call to coverage_clear() earlier, so that
the most recent loop's counters are included.

Signed-off-by: Ben Pfaff <blp@nicira.com>
lib/timeval.c

index dbfcdf5..2ce45fc 100644 (file)
@@ -240,11 +240,11 @@ time_poll(struct pollfd *pollfds, int n_pollfds, long long int timeout_when,
     int retval;
 
     time_init();
+    coverage_clear();
+    coverage_run();
     if (*last_wakeup) {
         log_poll_interval(*last_wakeup);
     }
-    coverage_clear();
-    coverage_run();
     start = time_msec();
 
     timeout_when = MIN(timeout_when, deadline);