大家来找茬之ACE_Message_Queue常见错误
2012-12-18 16:14
211 查看
下面的代码有3处常见错误:
ACE_Time_Value构造函数第二个参数单位为微秒,200毫秒应表示成ACE_Time_Value time_out (0, 200*1000);
dequeue函数的超时参数使用绝对时间,而不是相对时间;
由于队列类型模版参数为ACE_NULL_SYNCH,即使dequeue指定了超时参数,也不会等待超时,而会直接返回,上面的代码段是一个耗尽CPU的死循环!!
ACE_Message_Queue<ACE_NULL_SYNCH> high_priority_queue, low_priority_queue; ACE_Message_Block *mb; while (1) { // 超时时间200毫秒 ACE_Time_Value time_out (0, 200); // 优先处理高优先级队列中的消息 while (high_priority_queue.dequeue (mb, &time_out) != -1) { process (mb); mb->release (); } // 高优先级队列处理完毕后,处理高优先级队列中的消息 while (low_priority_queue.dequeue (mb, &time_out) != -1) { process (mb); mb->release (); } }
ACE_Time_Value构造函数第二个参数单位为微秒,200毫秒应表示成ACE_Time_Value time_out (0, 200*1000);
dequeue函数的超时参数使用绝对时间,而不是相对时间;
由于队列类型模版参数为ACE_NULL_SYNCH,即使dequeue指定了超时参数,也不会等待超时,而会直接返回,上面的代码段是一个耗尽CPU的死循环!!
相关文章推荐
- ACE_Message_Queue的异常
- SSH集成常见问题。锦囊!谢谢大家把自己的错误以及解决方案贴出来。
- ACE_Message_Queue
- vs2010上进行ACE编程常见编译错误解决方法
- ACE_Message_Queue
- ACE ACE_Time_Value和ACE_Message_Queue的点滴
- ACE_Message_Queue编码注意问题点
- 这个常见的错误。大家记录下自己曾遇到的这样问题的解决方法
- Compiler Error Message错误,常见错误!
- 基于ACE_Message_Queue的生产者消费者模式
- ACE_Message_Queue源码剖析
- ACE_Message_Block和ACE_Message_Queue问答
- ACE消息队列 ACE_Message_Queue 入队列,出队列方法(1)
- ACE中ACE_Message_Queue 的notify和Reactor结合使用时会导致死锁 - [程序]
- ACE_Message_Queue<ACE_MT_SYNCH>::putq ()使用时需要注意的地方
- 基于ACE_Message_Queue的生产者消费者模式
- ACE_Message_Queue
- ACE_Message_Queue的超时设置和消息清除
- ACE学习(七)ACE_Message_Queue
- ACE_Message_Queue