diff options
author | alfred <alfred@FreeBSD.org> | 1999-08-19 16:49:53 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 1999-08-19 16:49:53 +0000 |
commit | fb84309fe9f3b17d4cf0820da12fa43a36ef6b0e (patch) | |
tree | 198b691081ab839a0e81910da50f955a29574abc /lib/libpthread/thread | |
parent | 9ce4e1ab764035c17199595e622237c38cf4b72d (diff) | |
download | FreeBSD-src-fb84309fe9f3b17d4cf0820da12fa43a36ef6b0e.zip FreeBSD-src-fb84309fe9f3b17d4cf0820da12fa43a36ef6b0e.tar.gz |
handle under/overflow of time values in a more robust manner,
there may be an overflow that need to be adjusted more than once.
Pointed out by: Fabian Thylmann <fthylmann@stats.net>
Reviewed by: eivind, jb
Diffstat (limited to 'lib/libpthread/thread')
-rw-r--r-- | lib/libpthread/thread/thr_kern.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lib/libpthread/thread/thr_kern.c b/lib/libpthread/thread/thr_kern.c index e30267b..c0e4a5d 100644 --- a/lib/libpthread/thread/thr_kern.c +++ b/lib/libpthread/thread/thr_kern.c @@ -29,7 +29,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: uthread_kern.c,v 1.19 1999/06/20 08:28:31 jb Exp $ + * $Id: uthread_kern.c,v 1.20 1999/08/12 19:34:39 deischen Exp $ * */ #include <errno.h> @@ -458,7 +458,7 @@ __asm__("fnsave %0": :"m"(*fdata)); /* * Check for underflow of the nanosecond field: */ - if (ts1.tv_nsec < 0) { + while (ts1.tv_nsec < 0) { /* * Allow for the underflow of the * nanosecond field: @@ -469,7 +469,7 @@ __asm__("fnsave %0": :"m"(*fdata)); /* * Check for overflow of the nanosecond field: */ - if (ts1.tv_nsec >= 1000000000) { + while (ts1.tv_nsec >= 1000000000) { /* * Allow for the overflow of the * nanosecond field: |