Add new feature to mutex and semaphore - cancelUnlockWaiters: Cancel pending unlocks.#82
Open
alveifbklsiu259 wants to merge 2 commits into
Open
Add new feature to mutex and semaphore - cancelUnlockWaiters: Cancel pending unlocks.#82alveifbklsiu259 wants to merge 2 commits into
alveifbklsiu259 wants to merge 2 commits into
Conversation
cancelUnlockWaiters: Cancel pending unlocks.
Author
|
Hi @DirtyHairy, I'm not sure if you received my mail, but I'd appreciate it if you could review the pull request when you have a chance. Thanks! |
Owner
|
Hi @alveifbklsiu259 ! Yeah, I got your mail, thank you for your PR. However, I am currently rather swamped, but I plan to dedicate some time to the currently open PRs and to a new release later this month. |
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.
Hello @DirtyHairy , I added a new method
cancelUnlockWaiterstomutexandsemaphore. When this method is called, all pending unlock waiters will be cancelled, i.e. calls towaitForUnlockwill be rejected with the errorE_UNLOCKWAITERS_CANCELED.A scenario where
cancelUnlockWaiterswould be useful is when a background reauthorization failed. When the reauthorization failed, there's no need to run other pending requests.This idea came to me when I was implementing reauthorization with RTK Query, there exists a function to cancel all pending locks, however, no corresponding function exists to cancel pending unlocks, so I thought I might as well just make a pull request for such functionality.
Here's a simplified example of using
cancelUnlockWaiters:If you want to include this example in the
readme.md, feel free to do so.About customizing the error for
cancelUnlockWaiters, we could take the approach of passing an object toMutexorSemaphorefor both cancelError and unlockCancelError, but that might cause breaking change, so I choose the approach of passing custom unlockCancelError as another argument toMutexorSemaphore. This means that if a user wants to keep the default cancelError but customize the unlockCancelError, they have to implicitly importE_CANCELEDand pass it toMutexorSemaphore.Thank you for this great library!