Jacob Young
1fbc251ccd
EventLoop: implement thread-local queues and cancellation
2025-07-20 10:38:38 -07:00
Andrew Kelley
988f58341b
std.Io: introduce cancellation
2025-07-20 10:38:38 -07:00
Jacob Young
90cc7f4adf
EventLoop: fix futex usage
...
How silly of me to forget that the kernel doesn't implement its own API.
The scheduling is not great, but at least doesn't deadlock or hammer.
2025-07-20 10:38:38 -07:00
Jacob Young
4f214b97ec
EventLoop: get file operations working
...
Something is horribly wrong with scheduling, as can be seen in the
debug output, but at least it somehow manages to exit cleanly...
2025-07-20 10:38:38 -07:00
Andrew Kelley
50724cf1c3
WIP
2025-07-20 10:38:38 -07:00
Jacob Young
1216e807ac
EventLoop: move context after the async closure
...
This avoids needing to store more sizes and alignments. Only the result
alignment needs to be stored, because `Fiber` is at a fixed zero offset.
2025-07-20 10:38:38 -07:00
Jacob Young
048a40dac7
EventLoop: fix incorrect alignment panic
...
When the previous fiber did not request to be registered as an awaiter,
it may not have actually been a full blown `Fiber`, so only create the
`Fiber` pointer when needed.
2025-07-20 10:38:38 -07:00
Andrew Kelley
1d7a69cb7d
update threaded fibers impl to actually storing args
...
sorry, something still not working correctly
2025-07-20 10:38:38 -07:00
Andrew Kelley
ad3c5f0292
fix context passing in threaded Io impl
2025-07-20 10:38:38 -07:00
Jacob Young
0c1f5dbd64
EventLoop: implement main idle fiber
2025-07-20 10:38:38 -07:00
Jacob Young
c7b406f2ad
EventLoop: add threads
2025-07-20 10:38:38 -07:00
Jacob Young
03bb08d337
EventLoop: rewrite context switching
2025-07-20 10:38:38 -07:00
Jacob Young
93054125fe
EventLoop: prepare for threading
2025-07-20 10:38:38 -07:00
Andrew Kelley
07ee4977da
demo: single-threaded green threads implementation
2025-07-20 10:38:38 -07:00