[v3] use NSDMI in C++11 mutex types
Jonathan Wakely
jwakely.gcc@gmail.com
Wed Oct 26 20:33:00 GMT 2011
On 26 October 2011 19:57, François Dumont wrote:
>
> This is surely a naive remark as it is already the way the code is
> written and I haven't taken time to check the code in detail but there is
> something that surprised me in this patch. The __GTHREAD_MUTEX_INIT has also
> an impact on the definition of the destructor. Shouldn't the
> __gthread_mutex_destroy for __mutex_base or the _S_destroy for
> __recursive_mutex_base be called no matter how the _M_mutex has been created
> ?
"You do not need to destroy a mutex that was statically initialized
using the PTHREAD_INITIALIZER_MACRO."
p51, "Programming with POSIX Threads", Butenhof, 1997
If it's good enough for Butenhof it's good enough for me :)
For non-POSIX platforms that require an explicit destroy call, the
gthreads layer should not define __GTHREAD_MUTEX_INIT, which will
force us to use the init/destroy functions.
More information about the Libstdc++
mailing list