我有一个硬性要求,就是要强制销毁具有给定名称的posix消息队列。
我通过反复试验发现该命令不会执行
mq_unlink(BROKER_NAME);
上面的问题是,即使在取消链接之后,只要其他线程/进程引用该队列,该队列就会存在。
有没有办法强制销毁队列,没有问题?
我还将在队列中添加文件描述符。
答案 0 :(得分:1)
只要队列仍在使用中,就不能强行销毁该队列
每POSIX mq_unlink()
(在我的脑海中):
如果在调用
>mq_unlink()
时一个或多个进程打开了消息队列,则对消息队列的销毁应被推迟,直到所有对消息队列的引用都已关闭。
您必须使所有使用队列的进程也关闭它们的连接。