This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Enable lightweight checks with _GLIBCXX_ASSERTIONS.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]