linux – 什么是sd-bus中的’slot'(C语言)

linux – 什么是sd-bus中的’slot'(C语言),第1张

概述systemd的sd-bus.h文件中有几个API,可选择使用slot参数.以下是一些例子: int sd_bus_call_async(sd_bus *bus, sd_bus_slot **slot, sd_bus_message *m, sd_bus_message_handler_t callback, void *userdata, uint64_t usec);int sd_bus_a systemd的sd-bus.h文件中有几个API,可选择使用slot参数.以下是一些例子:

int sd_bus_call_async(sd_bus *bus,sd_bus_slot **slot,sd_bus_message *m,sd_bus_message_handler_t callback,voID *userdata,uint64_t usec);int sd_bus_add_filter(sd_bus *bus,voID *userdata);int sd_bus_add_fallback(sd_bus *bus,const char *prefix,voID *userdata);

如果调用代码指定NulL然后它变成“浮动槽”,我猜这意味着调用代码不需要担心它.

我看到的大多数示例源代码都是这个示例项目:https://github.com/tasleson/dbus-signals/blob/6d0e43d02d24ed51a17ce7df15a3a0a64ec0170d/spamsignals.c#L160

它需要一个插槽,然后有一段时间它会取消插槽.但它实际上并没有对它做任何事情.

解决方法 通过你自己的插槽使你的sd-bus-match生活纠缠在一个插槽中.这样,当您取消参考插槽时,您也会破坏匹配.
否则,传递NulL会将匹配的生命绑定到总线对象本身.
您列出的其他功能也是如此:
*带有插槽的sd_bus_call_async可让您通过取消插槽来销毁异步调用.
 带插槽的* sd_bus_add_filter会在您取消参考插槽时破坏过滤器.
我不确定sd_bus_add_fallback,因为我从来没有听说过.
检查插槽未被引用时调用的函数: https://github.com/systemd/systemd/blob/a7753693547233e4a1d6e10b1a8f6515a477f227/src/libsystemd/sd-bus/bus-slot.c#L68 总结

以上是内存溢出为你收集整理的linux – 什么是sd-bus中的’slot'(C语言)全部内容,希望文章能够帮你解决linux – 什么是sd-bus中的’slot'(C语言)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/1026125.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存