diff options
author | Ulrich Drepper <drepper@redhat.com> | 2003-01-03 19:13:49 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2003-01-03 19:13:49 +0000 |
commit | 997256dd68532c45c5f1d7e87acffcce8f195476 (patch) | |
tree | 1e35f8bcc487d7be4a09f7405105db5c6f98c020 /nptl/pthreadP.h | |
parent | 8439150e8a3fe76e936e8b258d853633ceb2c3e2 (diff) | |
download | glibc-997256dd68532c45c5f1d7e87acffcce8f195476.tar.gz glibc-997256dd68532c45c5f1d7e87acffcce8f195476.tar.xz glibc-997256dd68532c45c5f1d7e87acffcce8f195476.zip |
Update.
* pthreadP.h (pthread_cond_2_0_t): New type. (struct pthread_functions): Use new type for 2.0 condvar callbacks. Use new type for the 2.0 condvar function prototypes. * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions. * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar parameter. * old_pthread_cond_destroy.c: Likewise. * old_pthread_cond_broadcast.c: Likewise. Lock appropriately. * old_pthread_cond_signal.c: Likewise. * old_pthread_cond_timedwait.c: Likewise. * old_pthread_cond_wait.c: Likewise.
Diffstat (limited to 'nptl/pthreadP.h')
-rw-r--r-- | nptl/pthreadP.h | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h index 0a0e332f1c..51b34f49ef 100644 --- a/nptl/pthreadP.h +++ b/nptl/pthreadP.h @@ -67,6 +67,14 @@ extern int __pthread_debug attribute_hidden; #define DEBUGGING_P __builtin_expect (__pthread_debug, 0) +/* Compatibility type for old conditional variable interfaces. */ +typedef struct +{ + pthread_cond_t *cond; + lll_lock_t lock; +} pthread_cond_2_0_t; + + /* Data type shared with libc. The libc uses it to pass on calls to the thread functions. */ struct pthread_functions @@ -94,12 +102,12 @@ 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_broadcast_2_0) (pthread_cond_t *); - int (*ptr___pthread_cond_destroy_2_0) (pthread_cond_t *); - int (*ptr___pthread_cond_init_2_0) (pthread_cond_t *, + int (*ptr___pthread_cond_broadcast_2_0) (pthread_cond_2_0_t *); + int (*ptr___pthread_cond_destroy_2_0) (pthread_cond_2_0_t *); + int (*ptr___pthread_cond_init_2_0) (pthread_cond_2_0_t *, const pthread_condattr_t *); - int (*ptr___pthread_cond_signal_2_0) (pthread_cond_t *); - int (*ptr___pthread_cond_wait_2_0) (pthread_cond_t *, pthread_mutex_t *); + int (*ptr___pthread_cond_signal_2_0) (pthread_cond_2_0_t *); + int (*ptr___pthread_cond_wait_2_0) (pthread_cond_2_0_t *, pthread_mutex_t *); int (*ptr_pthread_equal) (pthread_t, pthread_t); void (*ptr___pthread_exit) (void *); int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *); @@ -322,15 +330,15 @@ extern int __pthread_enable_asynccancel (void) attribute_hidden; extern void __pthread_disable_asynccancel (int oldtype) internal_function attribute_hidden; -extern int __pthread_cond_broadcast_2_0 (pthread_cond_t *cond); -extern int __pthread_cond_destroy_2_0 (pthread_cond_t *cond); -extern int __pthread_cond_init_2_0 (pthread_cond_t *cond, +extern int __pthread_cond_broadcast_2_0 (pthread_cond_2_0_t *cond); +extern int __pthread_cond_destroy_2_0 (pthread_cond_2_0_t *cond); +extern int __pthread_cond_init_2_0 (pthread_cond_2_0_t *cond, const pthread_condattr_t *cond_attr); -extern int __pthread_cond_signal_2_0 (pthread_cond_t *cond); -extern int __old_pthread_cond_timedwait (pthread_cond_t *cond, +extern int __pthread_cond_signal_2_0 (pthread_cond_2_0_t *cond); +extern int __pthread_cond_timedwait_2_0 (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime); -extern int __pthread_cond_wait_2_0 (pthread_cond_t *cond, +extern int __pthread_cond_wait_2_0 (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex); /* The two functions are in libc.so and not exported. */ |