Skip to content

Commit a0447c6

Browse files
committed
[SE-0461] Add a section about removing noasync from the assumeIsolated API
family.
1 parent 87b18ec commit a0447c6

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

proposals/0461-async-function-isolation.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -781,6 +781,14 @@ Otherwise, the code will risk a data-race, because the task executor preference
781781
does not apply to actor-isolated methods with custom executors, and the
782782
nonisolated async method can be passed mutable state from the actor.
783783

784+
### Dynamic actor isolation APIs in async contexts
785+
786+
Because nonisolated async functions may now execute on a specific actor at
787+
runtime, the APIs in the Concurrency library for enforcing actor isolation
788+
assertions and preconditions are now useful in these contexts. As such, the
789+
`noasync` attribute will be removed from `assertIsolated`, `assumeIsolated`,
790+
and `preconditionIsolated` on `Actor` and `MainActor`.
791+
784792
### Import-as-async heuristic
785793

786794
Nonisolated functions imported from Objective-C that match the import-as-async
@@ -978,6 +986,7 @@ The proposal was revised with the following changes after the first review:
978986
* Renamed `@execution(concurrent)` back to `@concurrent`.
979987
* Removed the unconditional warning about nonisolated async functions that
980988
don't explicitly specify `@execution(caller)` or `@concurrent`.
989+
* Removed `noasync` from the `assumeIsolated` API family.
981990

982991
The proposal was revised with the following changes after the pitch discussion:
983992

0 commit comments

Comments
 (0)