Re: sd_bus_message_new_signal

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mo, 15.07.19 13:55, Salman Ahmed (salman.isd@xxxxxxxxx) wrote:

> Hello,
> I am trying to send a signal using sdbus but I am not able to see anything
> on my dbus-monitor command:
> dbus-monitor "type='signal',interface='test.signal.Type'"
>
> code:
> sd_bus_error error = SD_BUS_ERROR_NULL;
> sd_bus_message *m = NULL;
> sd_bus *bus = NULL;
> int r;
>
> r = sd_bus_open_user(&bus);
> if (r < 0) {
>    fprintf(stderr, "Failed to connect to user bus: %s\n", strerror(-r));
> }
> r= sd_bus_message_new_signal(bus, &m, "/test/signal/Object",
> "test.signal.Type", "Test");
> if (r < 0) {
>    fprintf(stderr, "new signal failed: %s\n", strerror(-r));
> }
> r = sd_bus_send(bus, m , NULL);
> if (r < 0) {
>    fprintf(stderr, "bus send failed: %s\n", strerror(-r));
> }

sd-bus is fully asynchronous, it never blocks. This means that it
might not write the message to the socket yet when you just enqueue
it, and you might need to flush things, for example via
sd_bus_flush(). (or add the connection to an event loop so that the
work can be done for you automatically, scheduled by the event loop)

Lennart

--
Lennart Poettering, Berlin
_______________________________________________
systemd-devel mailing list
systemd-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/systemd-devel




[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux