标签: c pthreads semaphore
如果某个帖子在pthread_cancel()上被屏蔽,我该如何让该帖子回复sem_wait()?
pthread_cancel()
sem_wait()
答案 0 :(得分:2)
你可以为SIGUSR1设置一个信号处理程序,对于那个将要阻塞的线程,从另一个线程,你调用pthread_cancel(tid)和pthread_kill(tid, SIGUSR1)。一旦sem_wait()被信号中断,线程将被取消。
pthread_cancel(tid)
pthread_kill(tid, SIGUSR1)