找回密码
 用户注册

QQ登录

只需一步,快速开始

查看: 3450|回复: 4

ACE_Semphore

[复制链接]
发表于 2009-9-21 22:44:21 | 显示全部楼层 |阅读模式
我在使用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)呢?
发表于 2009-9-22 08:28:49 | 显示全部楼层
试一下,getdayoftime 取出绝对时间,再加上你需要等的相对时间。
 楼主| 发表于 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 再帮帮忙,呵呵
发表于 2009-9-22 10:13:19 | 显示全部楼层
这样写没有问题,我拿你的代码运行了。
 楼主| 发表于 2009-9-22 11:11:34 | 显示全部楼层
谢谢 modern ,我刚刚试了,没有问题,可能前面什么地方写错了,呵呵
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

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

GMT+8, 2024-12-23 13:30 , Processed in 0.065474 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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