diff options
Diffstat (limited to 'src/runner.rs')
| -rw-r--r-- | src/runner.rs | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/runner.rs b/src/runner.rs index 554a711d8..806ddfc49 100644 --- a/src/runner.rs +++ b/src/runner.rs | |||
| @@ -406,6 +406,10 @@ where | |||
| 406 | let status = event_packet.msg.status; | 406 | let status = event_packet.msg.status; |
| 407 | let event_payload = events::Payload::None; | 407 | let event_payload = events::Payload::None; |
| 408 | 408 | ||
| 409 | // this intentionally uses the non-blocking publish immediate | ||
| 410 | // publish() is a deadlock risk in the current design as awaiting here prevents ioctls | ||
| 411 | // The `Runner` always yields when accessing the device, so consumers always have a chance to receive the event | ||
| 412 | // (if they are actively awaiting the queue) | ||
| 409 | self.events.queue.publish_immediate(events::Message::new( | 413 | self.events.queue.publish_immediate(events::Message::new( |
| 410 | Status { | 414 | Status { |
| 411 | event_type: evt_type, | 415 | event_type: evt_type, |
