From 29bc410c29ee2185bf91bf5fa923d8646ee9d501 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Sat, 4 Jan 2003 09:45:01 +0000 Subject: Update. * old_pthread_cond_broadcast.c: Optimize initialization a bit to work around gcc defficiencies. * old_pthread_cond_signal.c: Likewise. * old_pthread_cond_timedwait.c: Likewise. * old_pthread_cond_wait.c: Likewise. --- nptl/old_pthread_cond_timedwait.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'nptl/old_pthread_cond_timedwait.c') diff --git a/nptl/old_pthread_cond_timedwait.c b/nptl/old_pthread_cond_timedwait.c index ef8047e1b8..b30e182b40 100644 --- a/nptl/old_pthread_cond_timedwait.c +++ b/nptl/old_pthread_cond_timedwait.c @@ -35,13 +35,18 @@ __pthread_cond_timedwait_2_0 (cond, mutex, abstime) { pthread_cond_t *newcond; +#if LLL_MUTEX_LOCK_INITIALIZER == 0 + newcond = (pthread_cond_t *) calloc (sizeof (pthread_cond_t), 1); + if (newcond == NULL) + return ENOMEM; +#else newcond = (pthread_cond_t *) malloc (sizeof (pthread_cond_t)); if (newcond == NULL) return ENOMEM; - *newcond = (pthread_cond_t) PTHREAD_COND_INITIALIZER; - - atomic_write_barrier (); + /* Initialize the condvar. */ + (void) pthread_cond_init (newcond, NULL); +#endif if (atomic_compare_and_exchange_acq (&cond->cond, newcond, NULL) != 0) /* Somebody else just initialized the condvar. */ -- cgit v1.2.3