boost :: interprocess :: message_queue перестает работать в режиме Release с Visual C ++ - PullRequest
0 голосов
/ 23 апреля 2010

Я использую boost :: interprocess :: message_queue с VC ++ (в Microsoft Visual Studio 2005). Он работает правильно в режиме отладки. Затем, когда я компилирую свою программу в режиме Release, она перестает работать, каждый раз, когда я вызываю try_send, она возвращает false. Я не понимаю, какие могут быть настройки, которые отличаются между режимами выпуска и отладки, и это заставит очередь перестать работать.

1 Ответ

0 голосов
/ 23 апреля 2010

Оказывается, моя версия Release не выполняет столько регистрации, сколько отладочная. Поток, который накапливает сообщения в очереди, быстрее, а это означает, что другой поток (который сбрасывает сообщения) не догоняет. В конце очередь сообщений, если заполнена. Мне нужно использовать timed_send, чтобы у другого потока было время наверстать упущенное.

...