diff options
Diffstat (limited to 'linuxthreads')
-rw-r--r-- | linuxthreads/ChangeLog | 9 | ||||
-rw-r--r-- | linuxthreads/Versions | 3 | ||||
-rw-r--r-- | linuxthreads/forward.c | 9 | ||||
-rw-r--r-- | linuxthreads/internals.h | 3 | ||||
-rw-r--r-- | linuxthreads/pthread.c | 1 | ||||
-rw-r--r-- | linuxthreads/sysdeps/pthread/pthread-functions.h | 2 |
6 files changed, 26 insertions, 1 deletions
diff --git a/linuxthreads/ChangeLog b/linuxthreads/ChangeLog index b6a79ea45e..20f59046d2 100644 --- a/linuxthreads/ChangeLog +++ b/linuxthreads/ChangeLog @@ -17,6 +17,15 @@ * tst-tls1modf.c: New. * tst-tls2.sh: New test. + * internals.h (__pthread_cond_timedwait): New prototype. + * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add + ptr___pthread_cond_timedwait. + * pthread.c (__pthread_functions): Initialize them. + * forward.c (pthread_cond_timedwait@GLIBC_2.0, + pthread_cond_timedwait@@GLIBC_2.3.2): New forwards. + * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0, + pthread_cond_timedwait@@GLIBC_2.3.2. + 2003-08-27 Ulrich Drepper <drepper@redhat.com> * sysdeps/pthread/pthread.h: Don't mark pthread_exit, diff --git a/linuxthreads/Versions b/linuxthreads/Versions index e10826cb46..423b5ecedb 100644 --- a/linuxthreads/Versions +++ b/linuxthreads/Versions @@ -7,6 +7,7 @@ libc { pthread_attr_setschedparam; pthread_attr_setschedpolicy; pthread_attr_setscope; pthread_cond_broadcast; pthread_cond_destroy; pthread_cond_init; pthread_cond_signal; pthread_cond_wait; + pthread_cond_timedwait; pthread_condattr_destroy; pthread_condattr_init; pthread_equal; pthread_exit; pthread_getschedparam; pthread_mutex_destroy; pthread_mutex_init; pthread_mutex_lock; pthread_mutex_unlock; @@ -20,7 +21,7 @@ libc { # Changed pthread_cond_t. pthread_cond_init; pthread_cond_destroy; pthread_cond_wait; pthread_cond_signal; - pthread_cond_broadcast; + pthread_cond_broadcast; pthread_cond_timedwait; } GLIBC_PRIVATE { # Internal libc interface to libpthread diff --git a/linuxthreads/forward.c b/linuxthreads/forward.c index 6cc2f99aac..46cf53893e 100644 --- a/linuxthreads/forward.c +++ b/linuxthreads/forward.c @@ -128,6 +128,15 @@ compat_symbol (libc, __pthread_cond_wait_2_0, pthread_cond_wait, GLIBC_2_0); #endif versioned_symbol (libc, __pthread_cond_wait, pthread_cond_wait, GLIBC_2_3_2); +FORWARD (__pthread_cond_timedwait, + (pthread_cond_t *cond, pthread_mutex_t *mutex, + const struct timespec *abstime), (cond, mutex, abstime), 0) +#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2) +strong_alias (__pthread_cond_timedwait, __pthread_cond_timedwait_2_0) +compat_symbol (libc, __pthread_cond_timedwait_2_0, pthread_cond_timedwait, GLIBC_2_0); +#endif +versioned_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait, GLIBC_2_3_2); + FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2), (thread1, thread2), 1) diff --git a/linuxthreads/internals.h b/linuxthreads/internals.h index 69923e9b77..a5ec8b9284 100644 --- a/linuxthreads/internals.h +++ b/linuxthreads/internals.h @@ -354,6 +354,9 @@ extern int __pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t *cond_attr); extern int __pthread_cond_destroy (pthread_cond_t *cond); extern int __pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex); +extern int __pthread_cond_timedwait (pthread_cond_t *cond, + pthread_mutex_t *mutex, + const struct timespec *abstime); extern int __pthread_cond_signal (pthread_cond_t *cond); extern int __pthread_cond_broadcast (pthread_cond_t *cond); extern int __pthread_condattr_init (pthread_condattr_t *attr); diff --git a/linuxthreads/pthread.c b/linuxthreads/pthread.c index f261f8e8f4..5d5368f4d7 100644 --- a/linuxthreads/pthread.c +++ b/linuxthreads/pthread.c @@ -260,6 +260,7 @@ struct pthread_functions __pthread_functions = .ptr___pthread_cond_init = __pthread_cond_init, .ptr___pthread_cond_signal = __pthread_cond_signal, .ptr___pthread_cond_wait = __pthread_cond_wait, + .ptr___pthread_cond_timedwait = __pthread_cond_timedwait, .ptr_pthread_equal = __pthread_equal, .ptr___pthread_exit = __pthread_exit, .ptr_pthread_getschedparam = __pthread_getschedparam, diff --git a/linuxthreads/sysdeps/pthread/pthread-functions.h b/linuxthreads/sysdeps/pthread/pthread-functions.h index f47b46ff6e..e2d17f78c5 100644 --- a/linuxthreads/sysdeps/pthread/pthread-functions.h +++ b/linuxthreads/sysdeps/pthread/pthread-functions.h @@ -54,6 +54,8 @@ struct pthread_functions const pthread_condattr_t *); int (*ptr___pthread_cond_signal) (pthread_cond_t *); int (*ptr___pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *); + int (*ptr___pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *, + const struct timespec *); int (*ptr_pthread_equal) (pthread_t, pthread_t); void (*ptr___pthread_exit) (void *); int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *); |