aboutsummaryrefslogtreecommitdiff
path: root/nptl/pthreadP.h
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-01-03 19:13:49 +0000
committerUlrich Drepper <drepper@redhat.com>2003-01-03 19:13:49 +0000
commit997256dd68532c45c5f1d7e87acffcce8f195476 (patch)
tree1e35f8bcc487d7be4a09f7405105db5c6f98c020 /nptl/pthreadP.h
parent8439150e8a3fe76e936e8b258d853633ceb2c3e2 (diff)
downloadglibc-997256dd68532c45c5f1d7e87acffcce8f195476.tar
glibc-997256dd68532c45c5f1d7e87acffcce8f195476.tar.gz
glibc-997256dd68532c45c5f1d7e87acffcce8f195476.tar.bz2
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.h30
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. */