# \[Pitch #2\] Structured Concurrency

**URL:** <https://forums.swift.org/t/pitch-2-structured-concurrency/43452>\
**Category:** Pitches\
**Created:** [December 30, 2020, 7:25am UTC](https://forums.swift.org/t/pitch-2-structured-concurrency/43452 "2020-12-30T07:25:58Z")\
**Posts on this page:** 1\
**Showing post:** 41

<div class="post-metadata">

**Author:** ![xAlien95](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/xalien95/32/12558_2.png) [@xAlien95](https://forums.swift.org/u/xAlien95)\
**Post date:** [December 31, 2020, 5:38pm UTC](https://forums.swift.org/t/pitch-2-structured-concurrency/43452/41 "2020-12-31T17:38:51Z")

</div>

> [@michelf](#):
>
> > [@michelf](#):
> >
> > Does that mean `async let` introduces a suspension point too?
> 
> I still haven't got an answer to that question. I find it strange that `group.add` requires an `await` but `async let` (which is supposed to be sugar over it) doesn't.

I guess it's explicitly mentioned in the [Detailed design](https://github.com/DougGregor/swift-evolution/blob/structured-concurrency/proposals/nnnn-structured-concurrency.md#detailed-design) section:

> [@](#):
>
> Any reference to a variable that was declared in an `async let` is a potential suspension point, equivalent to a call to an asynchronous function, so it must occur within an `await` expression. The initializer of the `async let` is considered to be enclosed by an implicit `await` expression.

The answer is: `await` is implicit when using `async let` and it isn't when using `group.add` (at the moment at least).

---

_[View the full topic](https://forums.swift.org/t/pitch-2-structured-concurrency/43452)._
