aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-27 19:10:51 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-27 19:10:51 +0000
commitc75d02f05653316b8dfccca404a1e33c49562877 (patch)
treea26d5d1ed39f840cc825a9b1fff995a14cbfb881
parent0d5420ec80397ae46f8c0a67d013feaef94220f3 (diff)
downloadglibc-c75d02f05653316b8dfccca404a1e33c49562877.tar
glibc-c75d02f05653316b8dfccca404a1e33c49562877.tar.gz
glibc-c75d02f05653316b8dfccca404a1e33c49562877.tar.bz2
glibc-c75d02f05653316b8dfccca404a1e33c49562877.zip
Update.
2003-03-27 Ulrich Drepper <drepper@redhat.com> * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if timer_delete syscall fails, but not with ENOSYS, set __no_posix_timers. * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS] (timer_settime): Fix typo.
-rw-r--r--nptl/ChangeLog9
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_create.c12
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_delete.c7
-rw-r--r--nptl/sysdeps/unix/sysv/linux/timer_settime.c2
4 files changed, 21 insertions, 9 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index 10407bf62c..5571d42bf7 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,3 +1,12 @@
+2003-03-27 Ulrich Drepper <drepper@redhat.com>
+
+ * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
+ timer_delete syscall fails, but not with ENOSYS, set
+ __no_posix_timers.
+
+ * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
+ (timer_settime): Fix typo.
+
2003-03-27 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
diff --git a/nptl/sysdeps/unix/sysv/linux/timer_create.c b/nptl/sysdeps/unix/sysv/linux/timer_create.c
index 9e6b53ef37..97ffb6ddb6 100644
--- a/nptl/sysdeps/unix/sysv/linux/timer_create.c
+++ b/nptl/sysdeps/unix/sysv/linux/timer_create.c
@@ -115,6 +115,12 @@ timer_create (clock_id, evp, timerid)
}
free (newp);
+
+# ifndef __ASSUME_POSIX_TIMERS
+ /* When we come here the syscall does not exist. Make sure we
+ do not try to use it again. */
+ __no_posix_timers = -1;
+# endif
}
else
{
@@ -224,12 +230,6 @@ timer_create (clock_id, evp, timerid)
return -1;
}
}
-
-# ifndef __ASSUME_POSIX_TIMERS
- /* When we come here the syscall does not exist. Make sure we
- do not try to use it again. */
- __no_posix_timers = -1;
-# endif
}
# ifndef __ASSUME_POSIX_TIMERS
diff --git a/nptl/sysdeps/unix/sysv/linux/timer_delete.c b/nptl/sysdeps/unix/sysv/linux/timer_delete.c
index cf63364253..9028dc4efc 100644
--- a/nptl/sysdeps/unix/sysv/linux/timer_delete.c
+++ b/nptl/sysdeps/unix/sysv/linux/timer_delete.c
@@ -72,10 +72,13 @@ timer_delete (timerid)
Return the error. */
# ifndef __ASSUME_POSIX_TIMERS
if (errno != ENOSYS)
+ {
+ __no_posix_timers = 1;
# endif
- return -1;
-
+ return -1;
# ifndef __ASSUME_POSIX_TIMERS
+ }
+
__no_posix_timers = -1;
# endif
}
diff --git a/nptl/sysdeps/unix/sysv/linux/timer_settime.c b/nptl/sysdeps/unix/sysv/linux/timer_settime.c
index 7fc837cb5d..37ebf1dd53 100644
--- a/nptl/sysdeps/unix/sysv/linux/timer_settime.c
+++ b/nptl/sysdeps/unix/sysv/linux/timer_settime.c
@@ -46,7 +46,7 @@ timer_settime (timerid, flags, value, ovalue)
{
# undef timer_settime
# ifndef __ASSUME_POSIX_TIMERS
- if (__no_posix_timers == 0)
+ if (__no_posix_timers >= 0)
# endif
{
struct timer *kt = (struct timer *) timerid;