对于posix信号量,相当于Sys V SEM_UNDO

时间:2015-01-21 11:30:24

标签: c posix standards semaphore sysv-ipc

在具有多个进程的Linux系统中,系统V信号量允许选择SEM_UNDO,以防止信号量被卡住"卡住"如果持有信号量的进程崩溃。什么是防止POSIX信号量因持有信号量的进程中的崩溃而卡住的正确方法?或者POSIX 保证在发生崩溃的情况下信号量是否被释放?

1 个答案:

答案 0 :(得分:-1)

您可以使用SIGSEGV的信号处理程序,然后解锁并删除信号处理程序。

// set handler
signal(SIGSEGV, handler);

void handler(int signum) {
// unlock the locked semaphores
signal(SIGSEGV, SIG_DFL);
}