aboutsummaryrefslogtreecommitdiff
path: root/seatd/server.c
diff options
context:
space:
mode:
authorKenny Levinsen <kl@kl.wtf>2021-09-20 23:43:11 +0200
committerKenny Levinsen <kl@kl.wtf>2021-09-21 11:18:18 +0200
commitdb08fb921f8ea13202a487dcea2fdd3914b87dfd (patch)
tree3173ceeccce6ecd5db3b51ee34a75bc6d9212323 /seatd/server.c
parent2eee9aa445e3f9dc6a7ca115489f87b10f60b9ba (diff)
logind: Send ping to wake us up later
sd_bus_call drains received messages into the receive queue, and peeks for its own return value. It does not dispatch the receive queue. As the socket is drained, the caller will not wake from a poll and have no reason to dispatch libseat. This has gone unnoticed largely due to logind sending an event for every device, making it unlikely that no unread message will be left on the socket. Like we have done for seatd, we fix this by sending a "ping" request to logind if anything is left in our receive queue as reported by sd_bus_get_events. The response to this will wake us up and ensure that dispatch is called.
Diffstat (limited to 'seatd/server.c')
0 files changed, 0 insertions, 0 deletions