Interesting: POSIX says, of thread_mutex_lock ( ), pthread_mutex_trylock ( ), and pthread_mutex_unlock ( ): 34138 These functions shall not return an error code of [EINTR]. But of sem_wait (): 39299 The sem_trywait ( ) and sem_wait ( ) functions may fail if: ... 39301 [EINTR] A signal interrupted this function.