Change the default callback queue policy to SafeAsyncMainThread, don't need main queue check at all#3797
Merged
dreampiggy merged 1 commit intoFeb 22, 2025
Conversation
…t need main queue check at all This is the best practice for UI related code
dreampiggy
commented
Feb 24, 2025
| SDCallbackPolicyInvoke = 2, | ||
| /// Ensure callback in main queue (no gurantee on main thread). Do `dispatch_async` if the current queue is not main queue; else do invoke `block`. Never use `dispatch_sync`, suitable for general UI-related code | ||
| SDCallbackPolicySafeAsyncMainQueue = 3, | ||
| /// Ensure callback in main thread. Do `dispatch_async` if the `NSThread.isMainTrhead == true` ; else do invoke `block`. Never use `dispatch_sync`, suitable for special UI-related code |
Contributor
Author
There was a problem hiding this comment.
Seems the comment is not correct. The code implementation shows “When current thread is not main thread, do dispatch_async”
TODO: fix later @dreampiggy
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 the best practice for UI related code
New Pull Request Checklist
I have read and understood the CONTRIBUTING guide
I have read the Documentation
I have searched for a similar pull request in the project and found none
I have updated this branch with the latest master to avoid conflicts (via merge from master or rebase)
I have added the required tests to prove the fix/feature I am adding
I have updated the documentation (if necessary)
I have run the tests and they pass
I have run the lint and it passes (
pod lib lint)This merge request fixes / refers to the following issues: ...
Pull Request Description
After discussion in #3766
Actually this
SafeAsyncMainQueuedoes not do anything useful. UIKit always checkMainThread, but notMainQueue. So, we should remove this policy and always useSafeAsyncMainThreadinsteadThis is also what Kingfisher or ReactNative do in their latest release, to support UICollectionViewDiffableDataSource