2010-04-23 4 views
0

J'utilise boost :: interprocess :: message_queue, avec VC++ (dans Microsoft Visual Studio 2005). Il fonctionne correctement en mode débogage. Ensuite, quand je compile mon programme en mode Release, il cesse de fonctionner, chaque fois que j'appelle "try_send", il renvoie false. Je ne comprends pas ce qui pourrait être les paramètres qui sont différents entre les modes Release et Debug, et qui empêcheraient la file d'attente de fonctionner.boost :: interprocess :: message_queue cesse de fonctionner en mode Release avec C++ visuel

+1

Recherchez les mises à jour de votre compilateur ou remplacez-le par une version plus récente. – bitc

+0

Est-il possible de changer le compilateur utilisé par Visual Studio? J'ai regardé dans les options mais je n'ai pas trouvé. – Arthur

Répondre

0

Il s'avère que ma version Release ne fait pas autant de journalisation que celle de débogage. Le thread qui accumule les messages dans la file d'attente est plus rapide, ce qui signifie que l'autre thread (qui vide les messages) ne rattrape pas. À la fin, la file d'attente des messages si elle est pleine. Je dois utiliser timed_send pour que l'autre thread ait le temps de se rattraper.

Questions connexes