caibao000000 发表于 2009-9-21 22:44:21

ACE_Semphore

我在使用ACE_Semphore类的时候,acquire()的参数是一个ACE_Time_Value变量,可是acquire()马上就返回-1了,在semphore.h中的注释是 :Note that <tv> is assumed to be in "absolute" rather than "relative" time.我不明白这一句的意思,怎么样才能让acquire在等待一段时间之后再返回(没有release)呢?

modern 发表于 2009-9-22 08:28:49

试一下,getdayoftime 取出绝对时间,再加上你需要等的相对时间。

caibao000000 发表于 2009-9-22 09:47:09

谢谢 modern的关注。
ACE_Semaphore g_DataCopySem(0);
ACE_Time_Value g_StartTime(ACE_OS::gettimeofday());
ACE_Time_Value g_TimeWait(15, 0);
g_DataCopySem.acquire(g_StartTime + g_TimeWait);
我是这么写的,可是还是直接就返回了,麻烦 modern 再帮帮忙,呵呵

modern 发表于 2009-9-22 10:13:19

这样写没有问题,我拿你的代码运行了。

caibao000000 发表于 2009-9-22 11:11:34

谢谢 modern ,我刚刚试了,没有问题,可能前面什么地方写错了,呵呵
页: [1]
查看完整版本: ACE_Semphore