I guess malloc()'s mutexes, however, are plain pthread ones, using pthread_mutex_{un,}lock() rather than Thread{Unl,L}ock(), so we're at least not being re-entrant here !