Это может быть совершенно новый вопрос об очередях сообщений, но у нас есть некоторые проблемы с их постоянством во всей системе Linux.Мы запускаем Fedora 14 и используем очереди сообщений для передачи данных в потоки.
Проблема в том, что мы создаем очередь сообщений:
q = mq_open (strName, O_RDWR | O_CREAT | O_NONBLOCK, 0666, &sQAttr)
где:
strName = "/INFO_UPD_Q" or "/POLL_Q" ...
sQAttr.mq_flags = 0;
sQAttr.mq_maxmsg = iMaxNumMessages; /* 1 - 10 */
sQAttr.mq_msgsize = iSzOfMessages;
sQAttr.mq_curmsgs = 0;
Проблема, с которой мы сталкиваемся, заключается в том, что как только мы изменим размер передаваемых сообщений или приложение завершит работу / выйдет / прекратит работу, а очереди не будут закрыты и очищены, следующий запуск программы затопит систему старыми сообщениями.или не открывается правильно, и данные не попадают в потоки.
В данный момент мы решаем проблему, меняя имя очередей и затем перезагружая систему так часто.
Какмы получаем очереди, чтобы прекратить делать это?
Спасибо.