From 89004c42739c39f9546cd8c7ef6cfeaf7a838aa3 Mon Sep 17 00:00:00 2001 From: rpj Date: Sun, 12 Jun 2005 00:28:03 +0000 Subject: '' --- tests/ChangeLog | 6 ++++++ tests/stress1.c | 12 +++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) (limited to 'tests') diff --git a/tests/ChangeLog b/tests/ChangeLog index 9b00fa3..6b2c742 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,9 @@ +2005-06-12 Ross Johnson + + * stress1.c (millisecondsFromNow): Remove limit 0 <= millisecs < 1000; + now works for -INT_MAX <= millisecs <= INT_MAX; not needed for + stress1.c but should be general anyway. + 2005-05-18 Ross Johnson * reuse2.c (main): Must use a read with memory barrier semantics diff --git a/tests/stress1.c b/tests/stress1.c index 68d2ed7..2562167 100644 --- a/tests/stress1.c +++ b/tests/stress1.c @@ -117,15 +117,17 @@ millisecondsFromNow (struct timespec * time, int millisecs) /* get current system time and add millisecs */ _ftime(&currSysTime); - nanosecs = ((int64_t) (millisecs + currSysTime.millitm)) * NANOSEC_PER_MILLISEC; + secs = (int64_t)(currSysTime.time + (millisecs / 1000)); + nanosecs = ((int64_t) (millisecs%1000 + currSysTime.millitm)) * NANOSEC_PER_MILLISEC; if (nanosecs >= NANOSEC_PER_SEC) { - secs = currSysTime.time + 1; - nanosecs %= NANOSEC_PER_SEC; + secs++; + nanosecs -= NANOSEC_PER_SEC; } - else + else if (nanosecs < 0) { - secs = currSysTime.time; + secs--; + nanosecs += NANOSEC_PER_SEC; } time->tv_nsec = (long)nanosecs; -- cgit v1.2.3