util: add PollSemaphore::{add_permits, available_permits}
#3683
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.
Motivation
The
tokio::sync::Semaphore
type provides aSemaphore::available_permits
method which returns the currentnumber of permits available on the semaphore.
tokio_util::sync::PollSemaphore
does not expose such a method. Itis possible to use
PollSemaphore::into_inner
orPollSemaphore::clone_inner
to unwrap the inner semaphore, but this mayrequire cloning/dropping the semaphore's
Arc
which shouldn't benecessary to access the permits.
Solution
This commit adds
PollSemaphore::available_permits
. It also addsPollSemaphore::add_permits
while we're here.Closes #3682