强制销毁posix消息队列?

时间:2019-07-29 12:24:11

标签: posix message-queue

我有一个硬性要求,就是要强制销毁具有给定名称的posix消息队列。

我通过反复试验发现该命令不会执行

 mq_unlink(BROKER_NAME);

上面的问题是,即使在取消链接之后,只要其他线程/进程引用该队列,该队列就会存在。

有没有办法强制销毁队列,没有问题?

我还将在队列中添加文件描述符。

1 个答案:

答案 0 :(得分:1)

只要队列仍在使用中,就不能强行销毁该队列

POSIX mq_unlink()(在我的脑海中):

  

如果在调用mq_unlink()时一个或多个进程打开了消息队列,则对消息队列的销毁应被推迟,直到所有对消息队列的引用都已关闭。

>

您必须使所有使用队列的进程也关闭它们的连接。