Hello, There seems to be at least two issues:
if (_pthread_self ()) doesn't actually make sense since _pthread_self() already asserts(self), so the assertion will be triggered inside it. in the case of a normal mutex, now libpthread checks the owner when NDEBUG is not defined. The problem is that libc uses mutexes that have to be compatible with cthread mutexes, so we shouldn't use the owner field at all (since libc won't have allocated it). Samuel