如果进程在将信号量的值从1减少到0之后下降,根据我的理解,信号量的值仍然是0。
如果相同的进程再次出现并试图重新获取相同的信号量,它将永远阻塞。
如果我的进程异常停机,有没有办法在递减信号量后将信号量值重置为1?
发布于 2011-09-23 23:58:12
我假设您对信号量使用的是标准的semctl()/semop() API。
有一个名为SEM_UNDO的标志可用,它将告诉内核在进程终止时重置信号量的值。您需要在semop( )调用中使用它。
更多信息请点击此处:http://beej.us/guide/bgipc/output/html/multipage/semaphores.html
https://stackoverflow.com/questions/7530105
复制相似问题