diff options
author | Ulrich Drepper <drepper@redhat.com> | 2000-01-29 12:04:45 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2000-01-29 12:04:45 +0000 |
commit | b6aa34eb721a209444df2c0694bb18f8f4a58e47 (patch) | |
tree | 7256c643e7830c3a6aa7e852942d11d34b988d72 /linuxthreads | |
parent | 6770573aa3190c539932fd0bd56e9b64f95065a5 (diff) | |
download | glibc-b6aa34eb721a209444df2c0694bb18f8f4a58e47.tar.gz glibc-b6aa34eb721a209444df2c0694bb18f8f4a58e47.tar.xz glibc-b6aa34eb721a209444df2c0694bb18f8f4a58e47.zip |
Update.
* locale/loadlocale.c (_nl_load_locale): Optimize a bit. Pretty print. Add checks for _POSIX_MMAPPED_FILES where necessary. (_nl_unload_locale): If locale data was mmapped use munmap. 2000-01-29 Andreas Jaeger <aj@suse.de> * sysdeps/unix/sysv/linux/i386/sys/io.h: Add missing ints, use _EXTERN_INLINE, compile inline assembler functions only with gcc. 2000-01-29 Ulrich Drepper <drepper@redhat.com> * catgets/catgets.c (catopen): Handle NL_CAT_LOCALE correctly. * catgets/gencat.c (read_input_file): Remove messages correctly. * catgets/open_catalog.c (__open_catalog): Handle trailing colons and adjacent colons correctly. Correct loops to read territory and and codeset part. Patches by Geoff Clare <gwc@unisoft.com> (PR libc/1559). * rt/aio_misc.c (get_elem): Assign pointer to new row to correct pool entry. Patch by Jens Moeller <jens.moeller@waii.com> (PR libc/1558). 2000-01-28 Jakub Jelinek <jakub@redhat.com> * sysdeps/unix/sysv/linux/arm/Versions: Export the new *rlimit interface with symbol version GLIBC_2.2. * sysdeps/unix/sysv/linux/i386/Versions: Likewise. * sysdeps/unix/sysv/linux/i386/getrlimit.c: Likewise. * sysdeps/unix/sysv/linux/i386/getrlimit64.c: Likewise. * sysdeps/unix/sysv/linux/i386/setrlimit.c: Likewise. 2000-01-27 Scott Bambrough <scottb@netwinder.org> * sysdeps/unix/sysv/linux/arm/Makefile: Backout rlimit changes for resource directory. * sysdeps/unix/sysv/linux/arm/syscalls.list: Backout changes for versioning setrlimit and getrlimit. 2000-01-27 Andreas Jaeger <aj@suse.de> * sysdeps/powerpc/fpu/libm-ulps: Renamed to ... * sysdeps/powerpc/fpu/libm-test-ulps: ...this. 2000-01-27 Ruediger Oertel <ro@suse.de> * sysdeps/unix/sysv/linux/i386/sys/io.h: Change "::" to ": :" for g++. 2000-01-29 Ulrich Drepper <drepper@redhat.com>
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 8 | ||||
-rw-r--r-- | linuxthreads/condvar.c | 22 |
2 files changed, 19 insertions, 11 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index e8b0ae12b2..00678616e1 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -1,3 +1,11 @@ +2000-01-29 Ulrich Drepper <drepper@redhat.com> + + * condvar.c (pthread_cond_timedwait_relative_old): Get remaining time + from nanosleep call so that in case we restart we only wait for the + remaining time. + (pthread_cond_timedwait_relative_new): Likewise. + Patch by khendricks@ivey.uwo.ca (PR libc/1561). + 2000-01-18 Ulrich Drepper <drepper@cygnus.com> * manager.c (pthread_allocate_stack): Compute guard page address diff --git a/linuxthreads/condvar.c b/linuxthreads/condvar.c index 87a93a9115..aab3ff257b 100644 --- a/linuxthreads/condvar.c +++ b/linuxthreads/condvar.c @@ -26,13 +26,13 @@ #include "restart.h" static int pthread_cond_timedwait_relative_old(pthread_cond_t *, - pthread_mutex_t *, const struct timespec *); + pthread_mutex_t *, struct timespec *); static int pthread_cond_timedwait_relative_new(pthread_cond_t *, - pthread_mutex_t *, const struct timespec *); + pthread_mutex_t *, struct timespec *); static int (*pthread_cond_tw_rel)(pthread_cond_t *, pthread_mutex_t *, - const struct timespec *) = pthread_cond_timedwait_relative_old; + struct timespec *) = pthread_cond_timedwait_relative_old; /* initialize this module */ void __pthread_init_condvar(int rt_sig_available) @@ -130,7 +130,7 @@ int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) static int pthread_cond_timedwait_relative_old(pthread_cond_t *cond, pthread_mutex_t *mutex, - const struct timespec * reltime) + struct timespec * reltime) { volatile pthread_descr self = thread_self(); sigset_t unblock, initial_mask; @@ -179,7 +179,7 @@ requeue_and_wait_again: sigaddset(&unblock, __pthread_sig_restart); sigprocmask(SIG_UNBLOCK, &unblock, &initial_mask); /* Sleep for the required duration */ - retsleep = __libc_nanosleep(reltime, NULL); + retsleep = __libc_nanosleep(reltime, reltime); /* Block the restart signal again */ sigprocmask(SIG_SETMASK, &initial_mask, NULL); was_signalled = 0; @@ -219,8 +219,8 @@ requeue_and_wait_again: if (retsleep == 0) return ETIMEDOUT; - /* Woken by a signal: resume waiting as - required by Single Unix Specification. */ + /* Woken by a signal: resume waiting as required by Single Unix + Specification. */ goto requeue_and_wait_again; } @@ -250,7 +250,7 @@ requeue_and_wait_again: static int pthread_cond_timedwait_relative_new(pthread_cond_t *cond, pthread_mutex_t *mutex, - const struct timespec * reltime) + struct timespec * reltime) { volatile pthread_descr self = thread_self(); sigset_t unblock, initial_mask; @@ -298,7 +298,7 @@ pthread_cond_timedwait_relative_new(pthread_cond_t *cond, sigaddset(&unblock, __pthread_sig_restart); sigprocmask(SIG_UNBLOCK, &unblock, &initial_mask); /* Sleep for the required duration */ - retsleep = __libc_nanosleep(reltime, NULL); + retsleep = __libc_nanosleep(reltime, reltime); /* Block the restart signal again */ sigprocmask(SIG_SETMASK, &initial_mask, NULL); was_signalled = 0; @@ -335,8 +335,8 @@ pthread_cond_timedwait_relative_new(pthread_cond_t *cond, if (retsleep == 0) return ETIMEDOUT; - /* Woken by a signal: resume waiting as - required by Single Unix Specification. */ + /* Woken by a signal: resume waiting as required by Single Unix + Specification. */ goto requeue_and_wait_again; } |