projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix canonicalize loop-detection corner case.
[gnulib.git]
/
m4
/
nanosleep.m4
diff --git
a/m4/nanosleep.m4
b/m4/nanosleep.m4
index
d25295e
..
1d832a3
100644
(file)
--- a/
m4/nanosleep.m4
+++ b/
m4/nanosleep.m4
@@
-1,4
+1,4
@@
-#serial 2
0
+#serial 2
3
dnl From Jim Meyering.
dnl Check for the nanosleep function.
dnl From Jim Meyering.
dnl Check for the nanosleep function.
@@
-17,6
+17,7
@@
AC_DEFUN([gl_FUNC_NANOSLEEP],
dnl Persuade glibc and Solaris <time.h> to declare nanosleep.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
dnl Persuade glibc and Solaris <time.h> to declare nanosleep.
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
AC_REQUIRE([gl_CLOCK_TIME])
AC_CHECK_HEADERS_ONCE(sys/time.h)
AC_REQUIRE([gl_CLOCK_TIME])
AC_CHECK_HEADERS_ONCE(sys/time.h)
@@
-60,9
+61,16
@@
AC_DEFUN([gl_FUNC_NANOSLEEP],
static struct timespec ts_sleep;
static struct timespec ts_remaining;
static struct sigaction act;
static struct timespec ts_sleep;
static struct timespec ts_remaining;
static struct sigaction act;
+ if (! nanosleep)
+ return 1;
act.sa_handler = check_for_SIGALRM;
act.sa_handler = check_for_SIGALRM;
-
sigemptyset (&act.sa_mask);
+ sigemptyset (&act.sa_mask);
sigaction (SIGALRM, &act, NULL);
sigaction (SIGALRM, &act, NULL);
+ ts_sleep.tv_sec = 0;
+ ts_sleep.tv_nsec = 1;
+ alarm (1);
+ if (nanosleep (&ts_sleep, NULL) != 0)
+ return 1;
ts_sleep.tv_sec = TYPE_MAXIMUM (time_t);
ts_sleep.tv_nsec = 999999999;
alarm (1);
ts_sleep.tv_sec = TYPE_MAXIMUM (time_t);
ts_sleep.tv_nsec = 999999999;
alarm (1);
@@
-78,10
+86,13
@@
AC_DEFUN([gl_FUNC_NANOSLEEP],
esac],
[gl_cv_func_nanosleep=cross-compiling])
])
esac],
[gl_cv_func_nanosleep=cross-compiling])
])
- if test "$gl_cv_func_nanosleep" != yes; then
+ if test "$gl_cv_func_nanosleep" = yes; then
+ REPLACE_NANOSLEEP=0
+ else
+ REPLACE_NANOSLEEP=1
if test "$gl_cv_func_nanosleep" = 'no (mishandles large arguments)'; then
AC_DEFINE([HAVE_BUG_BIG_NANOSLEEP], 1,
if test "$gl_cv_func_nanosleep" = 'no (mishandles large arguments)'; then
AC_DEFINE([HAVE_BUG_BIG_NANOSLEEP], 1,
- [Define to 1 if nanosleep mishandle large arguments.])
+ [Define to 1 if nanosleep mishandle
s
large arguments.])
for ac_lib in $LIB_CLOCK_GETTIME; do
case " $LIB_NANOSLEEP " in
*" $ac_lib "*) ;;
for ac_lib in $LIB_CLOCK_GETTIME; do
case " $LIB_NANOSLEEP " in
*" $ac_lib "*) ;;
@@
-90,8
+101,6
@@
AC_DEFUN([gl_FUNC_NANOSLEEP],
done
fi
AC_LIBOBJ(nanosleep)
done
fi
AC_LIBOBJ(nanosleep)
- AC_DEFINE(nanosleep, rpl_nanosleep,
- [Define to rpl_nanosleep if the replacement function should be used.])
gl_PREREQ_NANOSLEEP
fi
gl_PREREQ_NANOSLEEP
fi