diff --git a/lib/std/Io.zig b/lib/std/Io.zig index 40f213f3de..8c552ad8fe 100644 --- a/lib/std/Io.zig +++ b/lib/std/Io.zig @@ -580,6 +580,9 @@ pub const VTable = struct { /// If it returns `null` it means `result` has been already populated and /// `await` will be a no-op. /// + /// When this function returns non-null, the implementation guarantees that + /// a unit of concurrency has been assigned to the returned task. + /// /// Thread-safe. async: *const fn ( /// Corresponds to `Io.userdata`. @@ -1024,6 +1027,10 @@ pub const Group = struct { /// /// `function` *may* be called immediately, before `async` returns. /// + /// When this function returns, it is guaranteed that `function` has + /// already been called and completed, or it has successfully been assigned + /// a unit of concurrency. + /// /// After this is called, `wait` or `cancel` must be called before the /// group is deinitialized. /// @@ -1094,6 +1101,10 @@ pub fn Select(comptime U: type) type { /// /// `function` *may* be called immediately, before `async` returns. /// + /// When this function returns, it is guaranteed that `function` has + /// already been called and completed, or it has successfully been + /// assigned a unit of concurrency. + /// /// After this is called, `wait` or `cancel` must be called before the /// select is deinitialized. /// @@ -1524,8 +1535,11 @@ pub fn Queue(Elem: type) type { /// not guaranteed to be available until `await` is called. /// /// `function` *may* be called immediately, before `async` returns. This has -/// weaker guarantees than `concurrent`, making more portable and -/// reusable. +/// weaker guarantees than `concurrent`, making more portable and reusable. +/// +/// When this function returns, it is guaranteed that `function` has already +/// been called and completed, or it has successfully been assigned a unit of +/// concurrency. /// /// See also: /// * `Group`