По идее (при качественной реализации pthreads), если объект свободен, то вызов pthread_mutex_lock не должен делать ядерного вызовы и следовательно должен отрабатывать достаточно быстро.
При вызове pthread_mutex_unlock, если на данном объекте никто не ждет, то также должно отрабатывать быстро, без ядерного вызова.