Отладка ACE: Как вызвать переполнение очереди сообщений?

Я использую метод:

ACE_Task :: putq (ACE_Message_Block * mb, ACE_Time_Value * tv)

Вот строка, где я это называю:
ret = putq (мб, const_cast (&ACE_Time_Value :: ноль));

То, что я в основном пытаюсь, это то, что мне нужно получать регулярные ошибки

EWOULDBLOCK и ESHUTDOWN от

int lastErr = ACE_OS :: last_error ();

чтобы сразу отладить …

Так что мой вопрос, есть ли простой способ, как вызвать такие ошибки?

Я уже пробовал это:
while (ret> = 0)
ret = putq (мб, const_cast (&ACE_Time_Value :: max_time));

но мой поток застревает после нескольких вызовов и никогда не возвращается из putq …

Большое спасибо заранее за подсказки!

Питер

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 — это еще одна проблема, и вы можете смоделировать ее, поставив соответствующие методы замедленного сна.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector