From 10adf8177b5a3355900c208aa6a4f7a443985593 Mon Sep 17 00:00:00 2001 From: corinna Date: Wed, 22 Mar 2006 12:52:26 +0000 Subject: [PATCH] * thread.cc (pthread_cond::init): Disable validity test of object to initialize since test of uninitialized content is unreliable. (pthread_rwlock::init): Ditto. (pthread_mutex::init): Ditto. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/thread.cc | 18 ++++++++++++------ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 62fc864866..bb0d4b9933 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2006-03-22 Corinna Vinschen + + * thread.cc (pthread_cond::init): Disable validity test of object + to initialize since test of uninitialized content is unreliable. + (pthread_rwlock::init): Ditto. + (pthread_mutex::init): Ditto. + 2006-03-21 Christopher Faylor * signal.cc (signal): Don't set SA_RESTART here. diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc index d7b2a1fa29..7ae53d34ad 100644 --- a/winsup/cygwin/thread.cc +++ b/winsup/cygwin/thread.cc @@ -2550,13 +2550,15 @@ pthread_cond::init (pthread_cond_t *cond, const pthread_condattr_t *attr) return EINVAL; cond_initialization_lock.lock (); - +#if 0 + /* Disabled since recognition of a valid object doesn't work reliably + if the object is uninitialized. */ if (!is_good_initializer_or_bad_object (cond)) { cond_initialization_lock.unlock (); return EBUSY; } - +#endif new_cond = new pthread_cond (attr ? (*attr) : NULL); if (!is_good_object (&new_cond)) { @@ -2731,13 +2733,15 @@ pthread_rwlock::init (pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr return EINVAL; rwlock_initialization_lock.lock (); - +#if 0 + /* Disabled since recognition of a valid object doesn't work reliably + if the object is uninitialized. */ if (!is_good_initializer_or_bad_object (rwlock)) { rwlock_initialization_lock.unlock (); return EBUSY; } - +#endif new_rwlock = new pthread_rwlock (attr ? (*attr) : NULL); if (!is_good_object (&new_rwlock)) { @@ -2909,13 +2913,15 @@ pthread_mutex::init (pthread_mutex_t *mutex, return EINVAL; mutex_initialization_lock.lock (); - +#if 0 + /* Disabled since recognition of a valid object doesn't work reliably + if the object is uninitialized. */ if (!is_good_initializer_or_bad_object (mutex)) { mutex_initialization_lock.unlock (); return EBUSY; } - +#endif new_mutex = new pthread_mutex (attr ? (*attr) : NULL); if (!is_good_object (&new_mutex)) { -- 2.11.0