C语言 相当于 Sys V SEM_UNDO 用于 posix 信号量



在具有多个进程的 Linux 系统中,系统 V 信号量允许SEM_UNDO在持有信号量的进程崩溃时防止信号量"卡住"的选项。防止 POSIX 信号量因持有信号量的过程中崩溃而卡住的正确方法是什么?还是 POSIX 保证在发生崩溃时释放信号量?

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

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

最新更新