ACE_Process_Mutex的问题
求助各位大侠:在使用ACE_Process_Mutex的过程中发现,在一个进程获得ACE_Process_Mutex之后,如果收到SIGSTOP信号,再收到SIGCONT信号后,锁就被释放了,另一个进程可以马上获得该锁。
而多个进程是需要同步的,我该怎么做? 截获SIGSTOP,SIGCONT这两个信号试试 sigstop是不可以捕获的。
试验了一下,我用的ACE_Guard会被SIGSTOP中断。
自己又写了一个模板,不用ACE_Guard了。
template <Class Lock>
class Unbreakable_Guard
{
public:
Unbreakable_Guard(Lock &l)
: l_(l)
{
while(l_.trayacquire() != 0)
usleep(10);
}
~Unbreakable_Guard()
{
l_.release();
}
private:
Lock& l_;
};
这样就不会被SIGSTOP打断了。
大家帮我分析一下,这样用有什么问题没有?
这是ACE_Guard的bug吗?
页:
[1]