[patch] Enable lightweight checks with _GLIBCXX_ASSERTIONS.
Florian Weimer
fweimer@redhat.com
Mon Sep 28 14:24:00 GMT 2015
On 09/27/2015 12:24 PM, Jonathan Wakely wrote:
> Doh, sorry, I meant this instead i.e. the non-recursive mutex.
> +# if _GLIBCXX_ASSERTIONS && defined(PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP)
> + // Use an error-checking mutex type when assertions are enabled.
> + __native_type _M_mutex = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
> +# else
> __native_type _M_mutex = __GTHREAD_MUTEX_INIT;
> +# endif
I think we should abort on a self-deadlock or an invalid unlock instead.
If this change is valid for libstdc++, it should probably happen at the
glibc level (perhaps guarded by _FORTIFY_SOURCE) because C programs
would benefit as well.
We'd need performance numbers to justify the change. Any ideas how to
get them? Benchmark MariaDB? What's another large multi-threaded
application? Qpid perhaps?
--
Florian Weimer / Red Hat Product Security
More information about the Libstdc++
mailing list