Skip to content
Lukáš Lalinský edited this page Oct 31, 2025 · 3 revisions

Issues

  • The kqueue backend is sketchy, it sometimes behaves strangely in .no_wait mode.
  • xev.Completion is huge. It would be much nicer if it worked the other way around, e.g. xev.Completion would contain an op enum, and xev.TimerCompletion would contain xev.Completion. We would store *xev.Completion in the queue, which each operation can use @fieldParentPtr on. Due to how our coroutines work, we don't really need to store copies of the completion.
  • Because libxev is callback-based, it assumes that memory copy is required in a lot more places than we actually need, because we allocate completions on stack and we can easily make sure that pointer that is in memory can stay valid until the operation completes.

Clone this wiki locally