-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Concurrency override actor isolation fixes #35270
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Concurrency override actor isolation fixes #35270
Conversation
Infer actor isolation from the overridden declaration unless some other isolation attribute was explicitly specified directly on that declaration. This allows type- and extension-level annotations with a global actor to not break overrides.
…er`. `@asyncHandler` methods can override with a completely different actor isolation because they will hop to the appropriate actor themselves. Therefore, allow differing actor isolation when an `@asyncHandler` method overrides another method, and don't propagate the actor isolation from the overridden method to the overriding `@asyncHandler` method.
@swift-ci please smoke test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍🏼
@swift-ci please smoke test and merge |
@swift-ci please smoke test macOS |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
@swift-ci please clean smoke test Linux |
@swift-ci please clean smoke test Windows |
@swift-ci please clean smoke test macOS |
@swift-ci please smoke test |
1 similar comment
@swift-ci please smoke test |
@swift-ci please smoke test and merge |
@swift-ci please smoke test macOS |
@swift-ci please smoke test Linux |
1 similar comment
@swift-ci please smoke test Linux |
Fix a few issues with actor-isolation checking for overrides:
@asyncHandler
overriding declarations to arbitrarily change the actor, because they'll be running the code somewhere else anyway