如何删除以前添加的 sd-bus 匹配
Posted
技术标签:
【中文标题】如何删除以前添加的 sd-bus 匹配【英文标题】:how to remove previously added sd-bus match 【发布时间】:2017-07-10 20:19:22 【问题描述】:我创建了 sd_bus,然后通过使用 sd_bus_add_match()
指定匹配并从 sd-bus
获取信号来注册信号。现在我想知道如何在不调用 sd_bus_close()
的情况下停止获取特定匹配的事件。
【问题讨论】:
【参考方案1】:据我所知,阅读源代码,您似乎必须将 sd_bus_slot** 传递给 sd_bus_add_match;它将为您创建一个类型为 BUS_MATCH_CALLBACK。 完成后,只需取消引用您的 sd_bus_slot ,它将负责销毁匹配并释放所有资源。见这里:https://github.com/systemd/systemd/blob/a7753693547233e4a1d6e10b1a8f6515a477f227/src/libsystemd/sd-bus/bus-slot.c#L68(注意 bus_slot_disconnect 由 sd_bus_slot_unref() 调用。
【讨论】:
以上是关于如何删除以前添加的 sd-bus 匹配的主要内容,如果未能解决你的问题,请参考以下文章