我正在使用方法:
ACE_Task :: putq(ACE_Message_Block * mb,ACE_Time_Value * tv)
以下是我称之为的行: ret = putq(mb,const_cast(& ACE_Time_Value :: zero));
我基本上尝试的是我需要定期出错
来自
的EWOULDBLOCK和ESHUTDOWNint lastErr = ACE_OS :: last_error();
立即调试......
所以我的问题是,它有一个简单的方法来强制这样的错误吗?
我已经尝试过了: while(ret> = 0) ret = putq(mb,const_cast(& ACE_Time_Value :: max_time));
但我的线程在几次调用后卡住了,从不从putq返回......
许多提前提示提示!
彼得答案 0 :(得分:0)
我认为第一部分(EWOULDBLOCK)我可以使用:
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错误的调用是另一个问题,你可以通过适当放慢速睡眠方法来模拟它。