我正在使用该方法:
ACE_Task::p utq (ACE_Message_Block *mb, ACE_Time_Value *tv)
这是我称之为的行:ret = putq(mb, const_cast(&ACE_Time_Value::零));
我基本上在尝试的是我需要定期出现错误
EWILLBLOCK 和 ESHUTDOWN from
int lastErr = ACE_OS::last_error();
为了立即调试它...
所以我的问题是,有一种简单的方法 如何强制此类错误 ?
我已经尝试过这个: 而 ( ret>= 0 ) ret = putq(mb, const_cast(&ACE_Time_Value::max_time));
但是我的线程在几次调用后卡住了,并且从未从 putq 返回......
提前感谢提示!
彼得
对于第一部分(EWILLBLOCK),我可以使用:
ACE_Svc_Handler::msg_queue()->high_water_mark(MAX_BUF_SIZE_BYTES);ACE_Svc_Handler::msg_queue()->low_water_mark(MIN_BUF_SIZE_BYTES);
我认为这些符合我的需求,我观察到的正是我所需要的。
ESHUTDOWN错误的调用是另一个问题,您可以通过适当地放慢睡眠方法来模拟它。