# std: rebase fixups and cancelation changes · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/f306a9f84a006a6429f485a6c99ac26723f1e1e4)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: f306a9f84a006a6429f485a6c99ac26723f1e1e4

Requested commit: f306a9f84a006a6429f485a6c99ac26723f1e1e4

Commit: f306a9f84a006a6429f485a6c99ac26723f1e1e4

Tree: a8d87cdaa3e38b4a6f2549a0a42d3d4268c804a8

Author: Matthew Lugg

Committer: Matthew Lugg

## Message

```
std: rebase fixups and cancelation changes

This commit includes some API changes which I agreed with Andrew as a
follow-up to the recent `Io.Group` changes:

* `Io.Group.await` *does* propagate cancelation to group tasks; it then
  waits for them to complete, and *also* returns `error.Canceled`. The
  assertion that group tasks handle `error.Canceled` "correctly" means
  this behavior is loosely analagous to how awaiting a future works. The
  important thing is that the semantics of `Group.await` and
  `Future.await` are similar, and `error.Canceled` will always be
  visible to the caller (assuming correct API usage).

* `Io.Group.awaitUncancelable` is removed.

* `Future.await` calls `recancel` only if the "child" task (the future
  being awaited) did not acknowledge cancelation. If it did, then it is
  assumed that the future will propagate `error.Canceled` through
  `await` as needed.

```

## Parents

- [b8a09bcbd955c2d97216ffef23246054aa3fe756](https://git.cafe/gitcafe/zig/commit/b8a09bcbd955c2d97216ffef23246054aa3fe756?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/f306a9f84a006a6429f485a6c99ac26723f1e1e4?format=markdown)
