From 1c6487c1e79cbe0d59a39b483af8ec44b59c586e Mon Sep 17 00:00:00 2001 From: Chris Boesch Date: Fri, 3 Apr 2026 18:11:00 +0200 Subject: added async-io quiz --- exercises/084_async.zig | 48 ------------------------------------------------ 1 file changed, 48 deletions(-) delete mode 100644 exercises/084_async.zig (limited to 'exercises/084_async.zig') 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()}); -} -- cgit v1.2.3