如果线程正在等待互斥锁,是否会捕获信号?

Joe*_*Joe 4 c++ linux mutex signals pthreads

我在互斥锁上阻塞了一个线程.该应用程序还具有自定义信号处理程序,使用设置sigaction.如果接收捕获信号的线程在互斥锁上被阻塞,信号处理程序是否会被调用,或者它将被阻塞,直到互斥锁被释放?

Sla*_*ica 7

很可能它将取决于实现,pthread例如,将执行信号处理程序,然后线程将在处理程序返回时等待互斥量:

man pthread_mutex_lock

如果将信号传递给等待互斥锁的线程,则从信号处理程序返回后,线程将继续等待互斥锁,就像它没有被中断一样.