在具有多个进程的Linux系统中,system信号量允许一个SEM_UNDO选项,如果持有信号量的进程崩溃,则防止信号量“卡住”。防止POSIX信号量因持有信号量的进程崩溃而受到干扰的正确方法是什么?或者POSIX 是否保证在发生崩溃时释放信号量?
发布于 2015-02-02 11:01:08
您可以为SIGSEGV使用信号处理程序,然后解锁并删除信号处理程序。
// set handler
signal(SIGSEGV, handler);
void handler(int signum) {
// unlock the locked semaphores
signal(SIGSEGV, SIG_DFL);
}https://stackoverflow.com/questions/28066152
复制相似问题