Make access to Mock thread safe#21
Merged
danielsaidi merged 2 commits intodanielsaidi:masterfrom Oct 17, 2025
Merged
Conversation
824b2be to
2454dd8
Compare
Owner
|
Hi @tboogh Thank you, it sounds great! I will take a look once I'm back from conference travels! I discussed the approach with people at the conference, and one suggested looking into OSUnfairLock for performance. Not that I think it matters for tests, but maybe food for thought? https://developer.apple.com/documentation/os/osallocatedunfairlock |
Contributor
Author
Interesting, I'll try it out |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 is a proposal to make the access to the
Mockthread safe so that it can be used in tests read/write mocks concurrently. TheNSLockensures that access to the calls dictionary is safe. We have used a similar approach where we used adispatch_semaphorebutNSLockfeels like it's a cleaner approach. This should solve the problems discussed in issue #20.The test written is a quick an dirty way to replicate the issue in a minimal way.