ACE的通知信号量,等待时间(2008-12-21 14:24:19)

ACE的通知信号量,等待时间 (2008-12-21 14:24:19)

1.通知信号量:ACE_Thread_Semaphore

 

第一步:初始化:m_callSem(0);

第二部:同步等待:callSem.acquire();

第三部:通知信号量加一:callSem.release();

举例如下:

//testSemaphore.h

#include <Thread_Semaphore.h>

#include <Time_Value.h>
#include <os.h>

class testSemaphore

{

public:

  testSemaphore();

~testSemaphore();

void wait();

void notify();

int wait(int waitTimeout);

public:

ACE_Thread_Semaphore m_callSem;

};

//testSemaphore.cpp

testSemaphore::testSemaphore():m_callSem(0)

{

}

testSemaphore::~testSemaphore()

{

m_callSem.release();

}

void testSemaphore::wait()

{

m_callSem.acquire();

}

void testSemaphore::notify()

{

m_callSem.release();

}

int testSemaphore::wait(int waitTimeout)

{
ACE_Time_Value wait = ACE_OS::gettimeofday();
 
    wait.sec (wait.sec () + waitTimeout);
 //注意这个时间是个绝对时间
 int semResult = m_callSem.acquire(wait);
 //超时处理
 if(semResult==-1)
 {
   return ERROR_USERINFO_TIMEOUT;
 }

return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值