[Concurrency][SE-0471] Change isIsolatingCurrent... to return Bool? #81134
+188
−175
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This changes the isIsolatingCurrentContext function to return
Bool?
and removes all the witness table trickery we did previously to detect if it was implemented or not. This comes at a cost of trying to invoke it always, beforecheckIsolated
, but it makes for an simpler implementation and more checkable even by third party Swift code which may want to ask this question.Along with the
withSerialExecutor
function, this now enables us to check the isolation at runtime when we have anany Actor
e.g. from#isolation
.Updates SE-0471 according to
https://forums.swift.org/t/se-0471-improved-custom-serialexecutor-isolation-checking-for-concurrency-runtime/78834/ review discussions