evdev-rs' multi-stage initialisation is complex and this complexity has resulted in subtle errors (eg: the deadlock fixed in #4791)
We should review the architecture and see if there's a simpler, more obviously correct alternative. Particularly, we should see whether we could bridge Rust's async/await system to Mir's MainLoop or Executor frameworks (or GLibMainLoop) so that we could write straight-line code that still returns to the mainloop when appropriate.
evdev-rs' multi-stage initialisation is complex and this complexity has resulted in subtle errors (eg: the deadlock fixed in #4791)
We should review the architecture and see if there's a simpler, more obviously correct alternative. Particularly, we should see whether we could bridge Rust's
async/awaitsystem to Mir'sMainLooporExecutorframeworks (orGLibMainLoop) so that we could write straight-line code that still returns to the mainloop when appropriate.