I am studying pthread_mutex_lock, and find out pthread_mutex_lock will finally calls a macro lll_futex_timed_wait() in glibc(version 2.27)
pthread_mutex_lock
lll_futex_timed_wait()