Please help with signals, some seem to get lost
Erik Slagter <[email protected]> Mon, 13 Jan 2025 14:14:40 +0100
| Newsgroups | gmane.comp.freedesktop.dbus |
|---|---|
| Message-ID | <[email protected]> |
Hi there, I'll start with a terse description of what I am facing, maybe that is enough for you guys to point me in the right direction. If not, I'll elaborate. For my application I need to send signals to several listeners on the system bus. The signals are composed of a string of about 300 bytes. Sometimes some signals are sent in quick succession and that's where it goes wrong. I use this code (I'd like to keep things very simple, no main loops etc, the handler runs in it's own thread anyway): dbus_connection_read_write_dispatch(connection, -1) // blocks until a message is received, quit if negative result message = dbus_connection_pop_message(connection) Now every now and then dbus_connection_read_write_dispatch returns from blocking but dbus_connection_pop_messages returns NULL. Two interesting observations here: - other processes that are listening to the same signal do get the message indeed, it's just one (random) of them that gets the NULL message - if I apply rate limiting, the problem decreases and at a rate of 2 signals per second it's gone. So it looks like I am hitting a rate limiter somewhere. I really want to go full throttle here, is there a way to change this parameter? Is there another workaround for this? Thanks in advance!