diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-03-27 19:10:51 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-03-27 19:10:51 +0000 |
commit | c75d02f05653316b8dfccca404a1e33c49562877 (patch) | |
tree | a26d5d1ed39f840cc825a9b1fff995a14cbfb881 | |
parent | 0d5420ec80397ae46f8c0a67d013feaef94220f3 (diff) | |
download | glibc-c75d02f05653316b8dfccca404a1e33c49562877.tar.gz glibc-c75d02f05653316b8dfccca404a1e33c49562877.tar.xz 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/ChangeLog | 9 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/timer_create.c | 12 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/timer_delete.c | 7 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/timer_settime.c | 2 |
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; |