ACE
swordmanwk
这个作者很懒,什么都没留下…
展开
-
《ACE程序员指南》中领导者与跟随者模式示例代码中的bug和解决方案
《ACE程序员指南》中线程池一章中提到了两个模式:一个是半同步半异步模式和领导者和跟随者模式,对于后者书中给出了一个示例程序,为了方便说明,我把示例代码贴在这里:#include "ace/config-lite.h"#if defined (ACE_HAS_THREADS)#include "ace/OS_NS_string.h"#include "ace/OS_NS_sys_time.h"#include "ace/Task.h"#include "ace/Containers.h"#include "原创 2011-02-08 12:42:00 · 2905 阅读 · 0 评论 -
ACE中的条件变量学习心得
<br />ACE的线程同步的方法之一是使用条件变量,我原来对条件变量不大理解,主要原因是Windows<br /> <br />操作系统下并没有直接与之对应的内核对象,而且条件变量需要和Mutex共同使用,<br /> <br />这个让人一下子摸不着头脑。经过反复测试,又查看了ACE的源代码,<br /> <br />我终于理解条件变量为什么总是与Mutex混合使用了。<br /> <br />像以下这段示例代码:<br /> <br />int<br />HA_CommandHandler::svc原创 2011-02-09 17:21:00 · 1662 阅读 · 2 评论 -
ACE_Timer_Queue学习心得
<br />今天学习ACE的定时器,有个地方开始怎么都不理解,现在终于搞清楚了,<br /> <br />现在总结一下:<br /> <br />1)ACE_Timer_Queue的gettimeofday函数,返回的是一个绝对时间值,它可以是当前的绝对时间,也可以不是。<br /> <br />2) ACE_Timer_Queue的calculate_timeout ( ACE_Time_Value * max ) 函数,这个函数把定时器的超时时间和max值做<br /> <br />比较,如果原创 2011-02-17 19:45:00 · 1780 阅读 · 0 评论 -
小心ACE_OS::fopen的一个陷阱
<br />今天用ACE_OS::fopen函数遇到一个很隐蔽的问题,我用ACE读一个二进制文件,<br />然后把内容写到另外一个文件中,和原来的内容不一样了,0A前面加了个0D。<br />后来研究了ACE的源代码,才把这个问题搞清楚,ACE_OS::fopen实际上封装的是<br />c函数库的fopen函数,我写二进制文件,调用函数的代码如下:<br />ACE_OS::fopen(sFileName.c_str(),"at+");<br />t表示文本格式的文件,a+表示<br />Opens f原创 2011-03-28 19:02:00 · 3040 阅读 · 0 评论