You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Rewrite UM implementation
* Keep references to scheduled fibers
* Add list of transient ops for GC purposes.
Care should be taken when working with fibers with regards to keeping refs to objects used in ongoing ops. Apparently, calls to RB_GC_GUARD for guarding refs on a fiber's stack are useless *unless* we keep a ref to the fiber somewhere. Otherwise, the fiber and all refs on its stack might be GC'd prematurely, leading to a segfault.
We therefore do both of the following:
1. Keep running fibers in a fibermap.
2. Keep refs to objects for transient ops in a linked list.
* Reimplement all single shot ops
* Comment out um_poll looping code
* Reimplement sync code
* Ongoing work on reimplementing multishot ops
* Handle CQE's one by one
* Reimplement recv_each
* Reimplement read_each (WIP)
* Debug
* Simplify and improve CQE processing, fix read_each
* Fix failing tests, cleanup
* Refactor checking completion result
* Remove #interrupt method
* Improve stability, fix issue with unwanted fiber resume
* Add more design details to README
* Benchmark schedule
* Reimplement runqueue scheduling
* Reuse transient um_op and multishot um_op_result structs
* Add basic DNS resolver
* Update liburing
* Small refactor to um_sync code
* Raise on error result read_each
* Fix test warnings
* Add UringMachine.kernel_version, skip read_each tests on early kernel
0 commit comments