mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
when two objc async functions are composed with each other, i.e., f(g()), then the clean-ups for g() would get emitted at an unexpected time, namely, during the suspension for the call to f(). This means that using a clean-up to emit the executor-hop breadcrumb was incorrect. The hop could appear between a get_async continuation and its matching await_continuation, which is an unsupported nested suspension. This commit fixes that by removing the use of the breadcrumb clean-up in favor of providing that breadcrumb directly to the result plan, so that it may be emitted later on when the result plan sees fit. Fixes rdar://91502776
1.6 KiB
1.6 KiB