summaryrefslogtreecommitdiff
path: root/doc/pastposix-functions
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2009-11-17 09:24:56 -0700
committerEric Blake <ebb9@byu.net>2009-11-17 22:31:58 -0700
commite8eecfd3f7d37692a7b87779b69d6fdc22d88d4d (patch)
treeba23fa37356a4fb4122ee07e709373fa85c11fda /doc/pastposix-functions
parent84405cbc35207f178b1b50617254cb85ea803128 (diff)
downloadgnulib-e8eecfd3f7d37692a7b87779b69d6fdc22d88d4d.tar.gz
usleep: new module
mingw usleep(1000000) failed with EINVAL, as allowed by POSIX, but contrary to GNU usage. Rather than implement an accurate usleep based on select or nanosleep, both of which drag in dependencies on external libraries, this version intentionally takes the ceiling in seconds if usleep() is missing. * modules/usleep: New file. * m4/usleep.m4 (gl_FUNC_USLEEP): Likewise. * lib/usleep.c (usleep): Likewise. * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Add defaults. * modules/unistd (Makefile.am): Substitute witnesses. * lib/unistd.in.h (usleep): Add declaration. * doc/pastposix-functions/usleep.texi (usleep): Document this. * MODULES.html.sh (Date and time): Likewise. * modules/usleep-tests (Depends-on): New test. * tests/test-usleep.c: New file. Signed-off-by: Eric Blake <ebb9@byu.net>
Diffstat (limited to 'doc/pastposix-functions')
-rw-r--r--doc/pastposix-functions/usleep.texi18
1 files changed, 10 insertions, 8 deletions
diff --git a/doc/pastposix-functions/usleep.texi b/doc/pastposix-functions/usleep.texi
index bb381520a6..8ca0da9e51 100644
--- a/doc/pastposix-functions/usleep.texi
+++ b/doc/pastposix-functions/usleep.texi
@@ -4,23 +4,25 @@
POSIX specification: @url{http://www.opengroup.org/susv3xsh/usleep.html}
-Gnulib module: ---
+Gnulib module: usleep
Portability problems fixed by Gnulib:
@itemize
+@item
+On some systems, @code{usleep} rejects attempts to sleep longer than 1
+second, as allowed by POSIX:
+mingw.
+@item
+This function is missing on some platforms. However, the replacement
+is designed to be lightweight, and may round to the neareset second;
+use @code{select} or @code{nanosleep} if better resolution is needed:
+IRIX 5.3, Solaris 2.4, older mingw, BeOS.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
-This function is missing on some platforms:
-IRIX 5.3, Solaris 2.4, older mingw, BeOS.
-@item
According to POSIX, the @code{usleep} function may interfere with the program's
use of the @code{SIGALRM} signal. On Linux, it doesn't; on other platforms,
it may.
-@item
-On some systems, @code{usleep} rejects attempts to sleep longer than 1
-second, as allowed by POSIX:
-mingw.
@end itemize