Andrew Kelley
8bcc91c15e
add std.testing.io
2025-07-20 10:40:26 -07:00
Andrew Kelley
b70f12fc40
std.Io: delete asyncParallel
2025-07-20 10:38:39 -07:00
Andrew Kelley
363d7deb8a
std.Io: fix error handling and asyncParallel docs
2025-07-20 10:38:39 -07:00
Andrew Kelley
33b10abaf6
std.Io: add asyncConcurrent and asyncParallel
2025-07-20 10:38:39 -07:00
Andrew Kelley
384545acbc
std.Io.EventLoop: add aarch64 support
2025-07-20 10:38:39 -07:00
Andrew Kelley
2db92a98e8
std.Io.ThreadPool: fix asyncDetached
2025-07-20 10:38:39 -07:00
Andrew Kelley
e95b26f1c6
std.Io: rename go to asyncDetached
...
it's a better name because it's more descriptive, not a reference, and
hints that it is less common than async
2025-07-20 10:38:39 -07:00
Andrew Kelley
38152c2d1c
revert std.Thread.Pool for now
...
and move the Io impl to a separate file
2025-07-20 10:38:39 -07:00
Andrew Kelley
80d4655bb1
update to sync with master
2025-07-20 10:38:39 -07:00
Andrew Kelley
3f524ac5dc
Io: update for new linked list API
2025-07-20 10:38:39 -07:00
Andrew Kelley
3178cf07f2
std.Io: remove @ptrCast workarounds
...
thanks to d53cc5e5b2
2025-07-20 10:38:39 -07:00
Andrew Kelley
13e30c4fd2
std.Io.EventLoop: implement select
2025-07-20 10:38:39 -07:00
Andrew Kelley
071607877d
Io.EventLoop: select stub
2025-07-20 10:38:39 -07:00
Andrew Kelley
0f67ea4fa4
introduce Io.select and implement it in thread pool
2025-07-20 10:38:39 -07:00
Jacob Young
7b5886118d
Io.Condition: implement full API
2025-07-20 10:38:39 -07:00
Jacob Young
fdf15fae97
EventLoop: implement detached fibers
2025-07-20 10:38:39 -07:00
Andrew Kelley
f2b24479ee
EventLoop: let the allocator do its job
...
to bucket and free fiber allocations
2025-07-20 10:38:39 -07:00
Jacob Young
9a652cc42a
EventLoop: fix std.Io.Condition implementation
...
1. a fiber can't put itself on a queue that allows it to be rescheduled
2. allow the idle fiber to unlock a mutex held by another fiber by
ignoring reschedule requests originating from the idle fiber
2025-07-20 10:38:39 -07:00
Jacob Young
f0919a4cea
EventLoop: revert incorrect optimization
2025-07-20 10:38:39 -07:00
Andrew Kelley
fa937d686d
EventLoop: remove broken mechanism for making deinit block on detached
2025-07-20 10:38:39 -07:00
Andrew Kelley
74969d1c40
std.Io.Condition: change primitive to support only one
...
and no timer
2025-07-20 10:38:39 -07:00
Andrew Kelley
59270425aa
EventLoop: take DetachedClosure into account when allocating
2025-07-20 10:38:39 -07:00
Andrew Kelley
5aa3d1425e
EventLoop: implement detached async
...
data races on deinit tho
2025-07-20 10:38:39 -07:00
Jacob Young
f3553049cb
Io: implement faster mutex
2025-07-20 10:38:39 -07:00
Andrew Kelley
ebf92042e3
std.Io: add detached async
2025-07-20 10:38:39 -07:00
Andrew Kelley
a7790bd32e
implement Mutex, Condition, and Queue
2025-07-20 10:38:38 -07:00
Jacob Young
012ef81b8b
Io: implement sleep and fix cancel bugs
2025-07-20 10:38:38 -07:00
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
Andrew Kelley
dab5dd286f
better API for Io.async
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
Andrew Kelley
d4ff3745d5
start adding fs functions to std.Io
2025-07-20 10:38:38 -07:00
Andrew Kelley
db499b82b5
free freeing wrong amount in thread pool impl
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
Andrew Kelley
6ae18714b7
make thread pool satisfy async/await interface
2025-07-20 10:38:38 -07:00
Andrew Kelley
5b2f54fc80
introduce std.Io interface
...
which is planned to have all I/O operations in the interface, but for
now has only async and await.
2025-07-20 10:38:38 -07:00
Kendall Condon
f657767b60
langref: upgrade grammar.y for asm clobber change
2025-07-20 19:37:41 +02:00
antlilja
14bb533203
use stdout_buffer instead of stdio_buffer in main.zig
2025-07-20 18:27:01 +02:00
Andrew Kelley
8373788c4c
Merge pull request #24488 from ziglang/more
...
std.zig: finish updating to new I/O API
2025-07-20 11:24:41 +02:00
Marc Tiehuis
4780cc50cf
std.Io.Writer: support alignment for {t} specifier
2025-07-20 10:30:17 +02:00