diff options
author | Roland McGrath <roland@gnu.org> | 2004-12-29 09:17:26 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2004-12-29 09:17:26 +0000 |
commit | 9410140c5e774bc709f2d2f39bcee215d78cf624 (patch) | |
tree | 9a4f0516d73a6b3bb38061cb71d2f831ccafeecb | |
parent | 6bddccf250ca891026b47dc3b51bac1450d6e559 (diff) | |
download | glibc-9410140c5e774bc709f2d2f39bcee215d78cf624.zip glibc-9410140c5e774bc709f2d2f39bcee215d78cf624.tar.gz glibc-9410140c5e774bc709f2d2f39bcee215d78cf624.tar.bz2 |
[BZ #626]
2004-12-29 Roland McGrath <roland@redhat.com>
[BZ #626]
* sysdeps/unix/alarm.c (alarm): Round return value to nearest rather
than always up; when nearest is zero, round up to one.
-rw-r--r-- | sysdeps/unix/alarm.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/sysdeps/unix/alarm.c b/sysdeps/unix/alarm.c index ae77782..84ab5a5 100644 --- a/sysdeps/unix/alarm.c +++ b/sysdeps/unix/alarm.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991,92,94,97,2002 Free Software Foundation, Inc. +/* Copyright (C) 1991,1992,1994,1997,2002,2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -41,7 +41,10 @@ alarm (seconds) return 0; retval = old.it_value.tv_sec; - if (old.it_value.tv_usec) + /* Round to the nearest second, but never report zero seconds when + the alarm is still set. */ + if (old.it_value.tv_usec >= 500000 + || (retval == 0 && old.it_value.tv_usec > 0)) ++retval; return retval; } |