# stage2: implement suspend blocks · gitcafe/zig

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

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

Visibility: public

Requested revision: e45b10f3d453f3bd8326631ee786a2ef247e8953

Requested commit: e45b10f3d453f3bd8326631ee786a2ef247e8953

Commit: e45b10f3d453f3bd8326631ee786a2ef247e8953

Tree: 92a8b593bbb1d06f696ce57826fc74438dfc1b1d

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
stage2: implement suspend blocks

 * AstGen: suspend blocks are always void
 * add new AIR instructions: suspend_begin and suspend_end
 * Module: after a function's body is analyzed, conclude that it is not
   async if it wasn't proven async during analysis.
 * LLVM: implement lowering of suspend_begin and suspend_end.

There is a lot to do in this branch. I started a branch-local TODO list
in the BRANCH_TODO file. All of these tasks should be finished before
merging into master.

```

## Parents

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

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