Add RWLock and ManagedAsynchronousAccess #17
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.
Add RWLock and ManagedAsynchronousAccess
♻️ Current situation & Problem
This PR adds the
RWLock
,RecursiveRWLock
andManagedAsynchronousAccess
infrastructure that was previously introduced in SpeziBluetooth (see StanfordSpezi/SpeziBluetooth#45 and StanfordSpezi/SpeziBluetooth#47).This changes require the Swift 6 toolchain. Therefore, we increase the required swift tools version to 6.0.
This PR introduces the final changes for the SpeziFoundation 2.0 release (assuming #16 is merged beforehand).
⚙️ Release Notes
RWLock
andRecursiveRWLock
ManagedAsynchronousAccess
sending
closure withwithTimeout
instead of a@Sendable
one.📚 Documentation
Updated the documentation catalog, adding a new "Concurrency" topics section.
✅ Testing
Added unit test for the new components.
📝 Code of Conduct & Contributing Guidelines
By submitting creating this pull request, you agree to follow our Code of Conduct and Contributing Guidelines: