【发布时间】:2017-09-10 21:49:44
【问题描述】:
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, sd_bus_slot **slot, sd_bus_message_handler_t callback, void *userdata);
int sd_bus_add_fallback(sd_bus *bus, sd_bus_slot **slot, const char *prefix, sd_bus_message_handler_t callback, void *userdata);
如果调用代码指定NULL,那么它就变成了一个“浮动槽”,我猜这意味着调用代码不需要担心它。
我看到的大多数示例源代码都类似于这个示例项目:https://github.com/tasleson/dbus-signals/blob/6d0e43d02d24ed51a17ce7df15a3a0a64ec0170d/spamsignals.c#L160
它需要一个插槽,然后稍后它会取消引用该插槽。但它实际上并没有做任何事情。
【问题讨论】:
-
“插槽”是硬件总线中的物理位置。插槽被编号(枚举),通常从 0 到连接器(插槽)的数量减去 1。您可以在插槽中放置广告板。
-
这是一个针对
sd-bus在systemd中的软件问题。我根本不是在谈论硬件。