Skip to content

Make assumeIsolated work with SerialExecutors that are backed by EventLoops#2865

Merged
FranzBusch merged 4 commits into
apple:mainfrom
fabianfett:ff-fix-assume-isolated
Sep 3, 2024
Merged

Make assumeIsolated work with SerialExecutors that are backed by EventLoops#2865
FranzBusch merged 4 commits into
apple:mainfrom
fabianfett:ff-fix-assume-isolated

Conversation

@fabianfett
Copy link
Copy Markdown
Member

Allow usage of assumeIsolated in SerialExecutors that are backed by EventLoops.

Motivation:

We want to support all new Swift 6 features in SerialExecutors.

Modifications:

  • Implement isSameExclusiveExecutionContext
  • Implement checkIsolated

Result:

We can use assumeIsolated in actors that use an EventLoop as their SerialExecutor.

@fabianfett fabianfett requested review from Lukasa and ktoso September 3, 2024 13:06
@FranzBusch FranzBusch added the 🔨 semver/patch No public API change. label Sep 3, 2024
@FranzBusch FranzBusch enabled auto-merge (squash) September 3, 2024 13:08
other === self
}

@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should fix the compilation failures

Suggested change
@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, visionOS 2.0, *)
@available(macOS 15.0, iOS 18.0, watchOS 11.0, tvOS 18.0, *)


@available(macOS 14.0, iOS 17.0, watchOS 10.0, tvOS 17.0, *)
@inlinable
public func isSameExclusiveExecutionContext(other: Self) -> Bool {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not going to be called yet.

You must adjust asUnownedSerialExecutor to return UnownedSerialExecutor with the marker flag (there's a complexEquality: initializer.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(making those calls is costly so we only do it when we know an executor has the ability and that's done via that flag)

@FranzBusch FranzBusch merged commit 9746cf8 into apple:main Sep 3, 2024
@fabianfett fabianfett deleted the ff-fix-assume-isolated branch September 3, 2024 14:57
cgrindel-self-hosted-renovate Bot referenced this pull request in cgrindel/rules_swift_package_manager Sep 10, 2024
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [apple/swift-nio](https://redirect.github.com/apple/swift-nio) | minor
| `2.70.0` -> `2.72.0` |

---

### Release Notes

<details>
<summary>apple/swift-nio (apple/swift-nio)</summary>

###
[`v2.72.0`](https://redirect.github.com/apple/swift-nio/releases/tag/2.72.0)

[Compare
Source](https://redirect.github.com/apple/swift-nio/compare/2.71.0...2.72.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### SemVer Minor

- Add .compact format to ByteBuffer's hexdump method by
[@&#8203;supersonicbyte](https://redirect.github.com/supersonicbyte) in
[https://github.com/apple/swift-nio/pull/2856](https://redirect.github.com/apple/swift-nio/pull/2856)

##### SemVer Patch

- Make `assumeIsolated` work with SerialExecutors that are backed by
EventLoops by
[@&#8203;fabianfett](https://redirect.github.com/fabianfett) in
[https://github.com/apple/swift-nio/pull/2865](https://redirect.github.com/apple/swift-nio/pull/2865)

#### New Contributors

- [@&#8203;supersonicbyte](https://redirect.github.com/supersonicbyte)
made their first contribution in
[https://github.com/apple/swift-nio/pull/2856](https://redirect.github.com/apple/swift-nio/pull/2856)

**Full Changelog**:
apple/swift-nio@2.71.0...2.72.0

###
[`v2.71.0`](https://redirect.github.com/apple/swift-nio/releases/tag/2.71.0)

[Compare
Source](https://redirect.github.com/apple/swift-nio/compare/2.70.0...2.71.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### SemVer Minor

- Adopt strict concurrency and Sendable in `NIOConcurrencyHelpers` by
[@&#8203;Lukasa](https://redirect.github.com/Lukasa) in
[https://github.com/apple/swift-nio/pull/2832](https://redirect.github.com/apple/swift-nio/pull/2832)
- Adopt strict concurrency in `_NIODataStructures` by
[@&#8203;Lukasa](https://redirect.github.com/Lukasa) in
[https://github.com/apple/swift-nio/pull/2835](https://redirect.github.com/apple/swift-nio/pull/2835)
- Provide documentation and context information for
`NIOTooManyBytesError` by
[@&#8203;cmcgee1024](https://redirect.github.com/cmcgee1024) in
[https://github.com/apple/swift-nio/pull/2831](https://redirect.github.com/apple/swift-nio/pull/2831)

##### SemVer Patch

- Adopt strict concurrency in `_NIOBase64` by
[@&#8203;Lukasa](https://redirect.github.com/Lukasa) in
[https://github.com/apple/swift-nio/pull/2838](https://redirect.github.com/apple/swift-nio/pull/2838)
- Remove symlinks from resources by
[@&#8203;Lukasa](https://redirect.github.com/Lukasa) in
[https://github.com/apple/swift-nio/pull/2841](https://redirect.github.com/apple/swift-nio/pull/2841)
- Fix global concurrency hook integration test by
[@&#8203;FranzBusch](https://redirect.github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2857](https://redirect.github.com/apple/swift-nio/pull/2857)

##### Other Changes

- Update wording from `ubuntu` to `Ubuntu` at README.md by
[@&#8203;lamtrinhdev](https://redirect.github.com/lamtrinhdev) in
[https://github.com/apple/swift-nio/pull/2830](https://redirect.github.com/apple/swift-nio/pull/2830)
- Update the triggers for the Semantic Version label check by
[@&#8203;FranzBusch](https://redirect.github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2833](https://redirect.github.com/apple/swift-nio/pull/2833)
- Add `.editorconfig` file by
[@&#8203;FranzBusch](https://redirect.github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2829](https://redirect.github.com/apple/swift-nio/pull/2829)
- Fix test availability by
[@&#8203;glbrntt](https://redirect.github.com/glbrntt) in
[https://github.com/apple/swift-nio/pull/2836](https://redirect.github.com/apple/swift-nio/pull/2836)
- Strict concurrency the early tests by
[@&#8203;Lukasa](https://redirect.github.com/Lukasa) in
[https://github.com/apple/swift-nio/pull/2840](https://redirect.github.com/apple/swift-nio/pull/2840)
- Fix `NIOFileSystem` flaky tests by
[@&#8203;gjcairo](https://redirect.github.com/gjcairo) in
[https://github.com/apple/swift-nio/pull/2842](https://redirect.github.com/apple/swift-nio/pull/2842)
- Improve `testTasksScheduledDuringShutdownAreAutomaticallyCancelled` by
[@&#8203;glbrntt](https://redirect.github.com/glbrntt) in
[https://github.com/apple/swift-nio/pull/2843](https://redirect.github.com/apple/swift-nio/pull/2843)
- Align benchmark scaling and minimum samples by
[@&#8203;FranzBusch](https://redirect.github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2839](https://redirect.github.com/apple/swift-nio/pull/2839)
- Explain why `ThreadLocalVariable` isn't Sendable. by
[@&#8203;Lukasa](https://redirect.github.com/Lukasa) in
[https://github.com/apple/swift-nio/pull/2845](https://redirect.github.com/apple/swift-nio/pull/2845)
- \[CI] Don't persist git credentials in CI by
[@&#8203;FranzBusch](https://redirect.github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2847](https://redirect.github.com/apple/swift-nio/pull/2847)
- \[CI] Mark the workspace as safe for the matrix job by
[@&#8203;FranzBusch](https://redirect.github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2848](https://redirect.github.com/apple/swift-nio/pull/2848)
- Pin DocC to below 1.4 by
[@&#8203;Lukasa](https://redirect.github.com/Lukasa) in
[https://github.com/apple/swift-nio/pull/2854](https://redirect.github.com/apple/swift-nio/pull/2854)
- \[CI] Make container images configurable in soundness and matrix jobs
… by [@&#8203;FranzBusch](https://redirect.github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2851](https://redirect.github.com/apple/swift-nio/pull/2851)
- Update release.yml by
[@&#8203;FranzBusch](https://redirect.github.com/FranzBusch) in
[https://github.com/apple/swift-nio/pull/2850](https://redirect.github.com/apple/swift-nio/pull/2850)

#### New Contributors

- [@&#8203;lamtrinhdev](https://redirect.github.com/lamtrinhdev) made
their first contribution in
[https://github.com/apple/swift-nio/pull/2830](https://redirect.github.com/apple/swift-nio/pull/2830)
- [@&#8203;cmcgee1024](https://redirect.github.com/cmcgee1024) made
their first contribution in
[https://github.com/apple/swift-nio/pull/2831](https://redirect.github.com/apple/swift-nio/pull/2831)

**Full Changelog**:
apple/swift-nio@2.70.0...2.71.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://redirect.github.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC43Mi4wIiwidXBkYXRlZEluVmVyIjoiMzguNzIuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->

Co-authored-by: cgrindel-self-hosted-renovate[bot] <139595543+cgrindel-self-hosted-renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🔨 semver/patch No public API change.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants