about summary refs log tree commit diff
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.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.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.  */