C++ ACE调试:如何导致消息队列已满?

C++ ACE调试:如何导致消息队列已满?,c++,nonblocking,shutdown,ace,getlasterror,C++,Nonblocking,Shutdown,Ace,Getlasterror,我使用的方法是: ACE_任务::putq(ACE_消息块*mb,ACE_时间值*tv) 这是我称之为的一行: ret=putq(mb、常量和时间值::零) 我基本上在尝试的是,我需要得到常规错误 从上到下 int lastErr=ACE_OS::last_error() 为了马上调试它 所以我的问题是,有没有一个简单的方法来强制这些错误 我已经试过了: 而(ret>=0) ret=putq(mb、常量和时间值::最大时间) 但是我的线程在几次调用后就被卡住了,而且从putq中再也没有返回 许多

我使用的方法是:

ACE_任务::putq(ACE_消息块*mb,ACE_时间值*tv)

这是我称之为的一行: ret=putq(mb、常量和时间值::零)

我基本上在尝试的是,我需要得到常规错误

从上到下

int lastErr=ACE_OS::last_error()

为了马上调试它

所以我的问题是,有没有一个简单的方法来强制这些错误

我已经试过了: 而(ret>=0) ret=putq(mb、常量和时间值::最大时间)

但是我的线程在几次调用后就被卡住了,而且从putq中再也没有返回

许多thanx提前提示


Peter

我认为对于第一部分(EWOULDBLOCK),我可以使用:

ACE_Svc_Handler::msg_queue()->高水位(最大大小字节); ACE_Svc_Handler::msg_queue()->低水位标记(最小大小字节)

我认为这些符合我的需要,我观察到的正是我需要的

ESHUTDOWN错误的envoking是另一个问题,您可以通过适当地放置slow-down sleep方法来模拟它