Skip to content

Commit b996590

Browse files
committed
[SE-0461] Add a section about removing noasync from the assumeIsolated API
family.
1 parent 39b06aa commit b996590

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
@@ -780,6 +780,14 @@ Otherwise, the code will risk a data-race, because the task executor preference
780780
does not apply to actor-isolated methods with custom executors, and the
781781
nonisolated async method can be passed mutable state from the actor.
782782

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

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

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

0 commit comments

Comments
 (0)