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/085_async2.zig | |
| parent | 25009361533be5e45cf59d9840edf5d13cfb8d6d (diff) | |
added async-io quiz
Diffstat (limited to 'exercises/085_async2.zig')
| -rw-r--r-- | exercises/085_async2.zig | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/exercises/085_async2.zig b/exercises/085_async2.zig deleted file mode 100644 index 1f1c4c8..0000000 --- a/exercises/085_async2.zig +++ /dev/null @@ -1,48 +0,0 @@ -// -// Now that we know how to get an Io value, let's use it for -// asynchronous execution! -// -// io.async() launches a function and returns a Future. The result -// won't necessarily be available until you call .await() on it: -// -// var future = io.async(someFunction, .{ arg1, arg2 }); -// // ... do other work here ... -// const result = future.await(io); -// -// The function *may* run immediately or on another thread - -// your code doesn't need to care! That's the beauty of the -// Io abstraction. (In the Threaded backend, if no thread is -// available, the function runs synchronously right away and -// .await() just returns the already-computed result.) -// -// io.async() returns a Future(T) where T is the return type -// of the function you passed in. Future has two key methods: -// -// .await(io) - block until the result is ready, return it -// .cancel(io) - request cancellation, then return the result -// -// Fix this program so that computeAnswer runs asynchronously -// and its result is properly awaited. -// -const std = @import("std"); - -pub fn main(init: std.process.Init) !void { - const io = init.io; - - // Launch computeAnswer asynchronously. - // io.async() takes a function and a tuple of its arguments. - var future = io.async(computeAnswer, .{ 6, 7 }); - - // Meanwhile, print something to show we're not blocked. - std.debug.print("Computing... ", .{}); - - // Now collect the result. What method on Future gives us - // the value, blocking if it isn't ready yet? - const answer = future.???(io); - - std.debug.print("The answer is: {}\n", .{answer}); -} - -fn computeAnswer(a: u32, b: u32) u32 { - return a * b; -} |
