标签: c++ linux pthreads signals mutex
我在互斥锁上阻塞了一个线程。该应用程序还具有使用sigaction设置的自定义信号处理程序。如果接收捕获信号的线程在互斥锁上被阻塞,信号处理程序是否会被调用,还是会被阻塞直到互斥锁被释放?
sigaction
答案 0 :(得分:7)
很可能它将依赖于实现,例如在pthread中将执行信号处理程序,然后线程将在处理程序返回时等待互斥:
pthread
man pthread_mutex_lock 如果信号在返回时传递给等待互斥锁的线程 来自信号处理程序 线程将继续等待互斥锁,就好像它没有被中断一样。
如果信号在返回时传递给等待互斥锁的线程 来自信号处理程序 线程将继续等待互斥锁,就好像它没有被中断一样。