missing pthread_mutexattr_destroy in boost thread (V 1.31.0)

Dear William I think you have missed pthread_mutexattr_destroy() in recursive_mutex::recursive_mutex() and recursive_mutex::recursive_try_mutex(). Proposed patch: #elif defined(BOOST_HAS_PTHREADS) recursive_mutex::recursive_mutex() : m_count(0) # if !defined(BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE) , m_valid_id(false) # endif { pthread_mutexattr_t attr = 0; int res = 0; res = pthread_mutexattr_init(&attr); assert(res == 0); # if defined(BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE) res = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); assert(res == 0); # endif res = pthread_mutex_init(&m_mutex, &attr); pthread_mutexattr_destroy(&attr); /* missing */ if (res != 0) throw thread_resource_error(); ../.. recursive_try_mutex::recursive_try_mutex() : m_count(0) # if !defined(BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE) , m_valid_id(false) # endif { pthread_mutexattr_t attr = 0; int res = 0; res = pthread_mutexattr_init(&attr); assert(res == 0); # if defined(BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE) res = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE); assert(res == 0); # endif res = pthread_mutex_init(&m_mutex, &attr); pthread_mutexattr_destroy(&attr); if (res != 0) throw thread_resource_error(); ___________________________________________________ Yahoo! Messenger - Nueva versión GRATIS Super Webcam, voz, caritas animadas, y más... http://messenger.yahoo.es

Adrian wrote:
Dear William
I think you have missed pthread_mutexattr_destroy() in recursive_mutex::recursive_mutex() and recursive_mutex::recursive_try_mutex().
Proposed patch:
<snipped patch> Unfortunately, William Kempf hasn't been heard from here in a while, but as far as I can tell you are correct. Barring any objections, I'll apply a modified version of your patch (one that asserts if pthread_mutexattr_destroy() returns an error). Mike
participants (2)
-
Adrian
-
Michael Glassford