1234567891011121314151617181920212223242526272829 |
- //
- // So, 'suspend' returns control to the place from which it was
- // called (the "call site"). How do we control back to the
- // suspended function?
- //
- // For that, we have a new keyword called 'resume' which takes an
- // async function invocation's frame and returns control to it.
- //
- // fn fooThatSuspends() void {
- // suspend {}
- // }
- //
- // var foo_frame = async fooThatSuspends();
- // resume foo_frame;
- //
- // See if you can make this program print "Hello async!".
- //
- const print = @import("std").debug.print;
- pub fn main() void {
- var foo_frame = async foo();
- }
- fn foo() void {
- print("Hello ", .{});
- suspend {}
- print("async!\n", .{});
- }
|