FFY00 / dbus-objects

DBus objects implementation on top of the Python type system
https://dbus-objects.readthedocs.io/en/latest/
MIT License
11 stars 4 forks source link

Jeepney blocking I/O back-end blocks indefinitely in `listen()` #22

Closed nojocodex closed 3 years ago

nojocodex commented 3 years ago

The dbus_objects.integration.jeepney.BlockingDBusServer class listen() method calls self._conn.receive() without a timeout, which blocks indefinitely. I suppose that fits with blocking part in its name: BlockingDBusServer :-) But the method does take delay and event arguments, which makes me think it's intended to allow some external control of when it stops.

Such control would be helpful for e.g. being able to run a BlockingDBusServer in its own thread while allowing the main thread control over stopping it.

FFY00 commented 3 years ago

Right, currently when the event is set we will only stop after the next message.