-
Notifications
You must be signed in to change notification settings - Fork 2
feat: thread-safe user attribute update tracking and safe reading/updating of evaluations #116
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
Merged
Merged
Changes from all commits
Commits
Show all changes
31 commits
Select commit
Hold shift + click to select a range
f41d71d
feat: add thread safety to EvaluationStorageImpl with NSLock
duyhungtnn 4270d07
fix: indentation
duyhungtnn e10a481
test(e2e): wrap evaluationStorage assertions in dispatchQueue.sync
duyhungtnn 8e506bc
chore: add detailed locking rationale and improve doc comments
duyhungtnn 6697cca
fix: whitespace in EvaluationStorageImpl.swift
duyhungtnn 7f77261
test: integration test - Thread-safety for concurrent read/write access
duyhungtnn 212ae8e
refactor: EvaluationStorageImpl concurrency model
duyhungtnn 6a61189
chore: Use sync barrier for cache set operation
duyhungtnn 62d80dc
chore: remove redundant comments and clarify test expectations
duyhungtnn 1308def
chore: improve concurrency comments and test error handling
duyhungtnn 25bd059
test: add concurrency tests for InMemoryCache
duyhungtnn 46999d9
chore: add comments explaining cache access in getBy method
duyhungtnn 65a5e60
chore: wrap setUserAttributesUpdated in execute block for thread safety
duyhungtnn 42fad03
revert: call setUserAttributesUpdated without execute wrapper
duyhungtnn 230aabf
chore: add versioning to userAttributesUpdated flag
duyhungtnn 2623adb
test: add concurrency test for setUserAttributesUpdated
duyhungtnn 64d09fb
test: improve concurrency test for user attributes update
duyhungtnn 3fb3996
fix: race condition in MockEvaluationStorage lock usage
duyhungtnn ed3916b
chore: clarify threading and versioning in evaluation storage
duyhungtnn f60f41b
refactor: async test for user attribute updates
duyhungtnn 14df540
refactor: user attributes update state handling
duyhungtnn 26b65b4
chore: clarify UserAttributesState documentation
duyhungtnn 0d29aa1
refactor: userAttributesUpdated to userAttributesState
duyhungtnn 5fa480a
chore: add documentation for userAttributesUpdatedVersion
duyhungtnn 2162f33
refactor: user attributes clear logic to use state snapshot
duyhungtnn de12249
fix: e2e random fail because cache data
duyhungtnn 8fb0bcc
Remove outdated comment on userAttributesUpdated race condition
duyhungtnn 2402c99
Make MockDefaults thread-safe with concurrent queue
duyhungtnn 7d2fbaf
Clarify UserAttributesState versioning and cleanup code
duyhungtnn 6aecf11
Clarify comments on versioning and race conditions
duyhungtnn dcd7cd1
refactor: evaluation user defaults key management
duyhungtnn File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
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
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
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
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
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
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
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.