diff options
| author | Chris Boesch <chrboesch@noreply.codeberg.org> | 2026-04-03 18:11:00 +0200 |
|---|---|---|
| committer | Chris Boesch <chrboesch@noreply.codeberg.org> | 2026-04-03 18:11:00 +0200 |
| commit | 1c6487c1e79cbe0d59a39b483af8ec44b59c586e (patch) | |
| tree | 22f774d62d15252e17db75b22be40d7606fe606f /exercises/084_async.zig | |
| parent | 25009361533be5e45cf59d9840edf5d13cfb8d6d (diff) | |
added async-io quiz
Diffstat (limited to 'exercises/084_async.zig')
| -rw-r--r-- | exercises/084_async.zig | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/exercises/084_async.zig b/exercises/084_async.zig deleted file mode 100644 index 48bda2b..0000000 --- a/exercises/084_async.zig +++ /dev/null @@ -1,48 +0,0 @@ -// -// In previous versions of Zig, async/await used special keywords -// like 'suspend', 'resume', and 'async' that operated on stackframes -// directly. Those keywords no longer exist! -// -// Zig 0.16 replaced them with a unified I/O interface: std.Io. -// This interface uses a VTable pattern - a struct of function pointers - -// to abstract over different concurrency backends: -// -// * Threaded - classic thread-pool based I/O -// * Uring - Linux io_uring -// * Kqueue - BSD/macOS -// * Dispatch - macOS Grand Central Dispatch -// -// The Io struct itself is tiny: -// -// const Io = struct { -// userdata: ?*anyopaque, // opaque state of the backend -// vtable: *const VTable, // table of function pointers -// }; -// -// Your code receives an Io value and calls methods on it. -// The backend is chosen at initialization time - your code doesn't -// need to know which one it is! -// -// In Zig 0.16, main() receives a std.process.Init struct to opt -// into I/O and concurrency support: -// -// pub fn main(init: std.process.Init) !void { -// const io = init.io; -// // ... use io ... -// } -// -// Let's start simple. Fix the main function to extract the Io -// interface from init, then use it to get the current time. -// -const std = @import("std"); - -pub fn main(init: std.process.Init) !void { - const io = init.???; - - // Get the current wall-clock time using the Io interface. - // Hint: Timestamp.now() takes an Io and a Clock type (.real = wall clock). - const timestamp = std.Io.Timestamp.now(io, .real); - - // Print the timestamp in seconds since the Unix epoch. - std.debug.print("Current time: {}s since epoch\n", .{timestamp.toSeconds()}); -} |
