Added ex91 - closing in on async!

pull/2/head
Dave Gauer 3 years ago
parent 4c7eebbbfc
commit 49ce260748

@ -443,6 +443,10 @@ const exercises = [_]Exercise{
.main_file = "090_async7.zig",
.output = "beef? BEEF!",
},
.{
.main_file = "091_async8.zig",
.output = "ABCDEF",
},
};
/// Check the zig version to make sure it can compile the examples properly.

@ -0,0 +1,35 @@
//
// You have doubtless noticed that 'suspend' requires a block
// expression like so:
//
// suspend {}
//
// The suspend block executes when a function suspends. To get
// sense for when this happens, please make the following
// program print the string
//
// "ABCDEF"
//
const print = @import("std").debug.print;
pub fn main() void {
print("A", .{});
var frame = async suspendable();
print("X", .{});
resume frame;
print("F", .{});
}
fn suspendable() void {
print("X", .{});
suspend {
print("X", .{});
}
print("X", .{});
}

@ -0,0 +1,16 @@
20c20
< print("X", .{});
---
> print("D", .{});
28c28
< print("X", .{});
---
> print("B", .{});
31c31
< print("X", .{});
---
> print("C", .{});
34c34
< print("X", .{});
---
> print("E", .{});
Loading…
Cancel
Save