找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 4139|回复: 2

ACE_Process_Mutex的问题

[复制链接]
发表于 2010-11-8 10:48:08 | 显示全部楼层 |阅读模式
求助各位大侠:
在使用ACE_Process_Mutex的过程中发现,在一个进程获得ACE_Process_Mutex之后,如果收到SIGSTOP信号,再收到SIGCONT信号后,锁就被释放了,另一个进程可以马上获得该锁。

而多个进程是需要同步的,我该怎么做?
发表于 2010-11-8 15:37:23 | 显示全部楼层
截获SIGSTOP,SIGCONT这两个信号试试
 楼主| 发表于 2010-11-8 16:04:58 | 显示全部楼层
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吗?
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

Archiver|手机版|小黑屋|ACE Developer ( 京ICP备06055248号 )

GMT+8, 2024-11-22 05:28 , Processed in 0.016602 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表