From: Michal Sojka Date: Fri, 3 Dec 2010 22:33:32 +0000 (+0100) Subject: Do not call poll with negative timeout X-Git-Tag: fix-allnoconfig~265 X-Git-Url: http://rtime.felk.cvut.cz/gitweb/can-benchmark.git/commitdiff_plain/cf9bd660b3c10cff6e81af6fb4e42d3569229514 Do not call poll with negative timeout --- diff --git a/latester/latester.c b/latester/latester.c index d178e1e..c980f24 100644 --- a/latester/latester.c +++ b/latester/latester.c @@ -74,6 +74,7 @@ struct options opt = { struct { unsigned enobufs; + unsigned overrun; } stats; int num_interfaces = 0; @@ -401,7 +402,10 @@ static inline void get_next_timeout(struct timespec *timeout) last.tv_nsec -= 1000000000; last.tv_sec++; } - timespec_subtract(timeout, &last, &now); + if (timespec_subtract(timeout, &last, &now) /* is negative */) { + stats.overrun++; + memset(timeout, 0, sizeof(*timeout)); + } } else if (opt.timeout_ms != 0) { timeout->tv_sec = opt.timeout_ms/1000; timeout->tv_nsec = (opt.timeout_ms%1000)*1000000; @@ -751,5 +755,10 @@ int main(int argc, const char *argv[]) if (opt.file) fclose(opt.file); + if (stats.overrun) + printf("overrun=%d\n", stats.overrun); + if (stats.enobufs) + printf("enobufs=%d\n", stats.enobufs); + return 0; }