Add Mutex::try_lock and (Unbounded)Receiver::try_recv #1939
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
Mutex::try_lock
is missingReceiver::try_recv
is missingUnboundedReceiver::try_recv
is missingThis makes it (a) impossible to use tokio mutexes and channels in sync code and (b) implement async code that should try to lock/recv and not block.
Solution
Mutex::try_lock
+ unit testReceiver::try_recv
+ unit testUnboundedReceiver::try_recv
+ unit testMost of the doc strings were taken 1:1 from
std
and and just adopted to match tokio naming conventions. If this is a problem I can rephrase them in my own words. I think it should be no problem though as thestd
is dual licensed under MIT and Apache License.