task: relax 'static bound in LocalSet::block_on
#1882
Merged
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
Currently,
tokio::task::LocalSet
'sblock_on
method requires thefuture to live for the 'static lifetime. However, this bound is not
required — the future is wrapped in a
LocalFuture
, and then passedinto
Runtime::block_on
, which does not require a'static
future.This came up while updating
tokio-compat
to work with version 0.2. Tomimic the behavior of
tokio
0.1'scurrent_thread::Runtime::run
, wewant to be able to have a runtime block on the
recv
future from anmpsc channel indicating when the runtime is idle. To support
!Send
futures, as the old
current_thread::Runtime
did, we must do so insideof a
LocalSet
. However, with the current bounds, we cannot await anmpsc::Receiver
'srecv
future inside theLocalSet::block_on
call.Solution
This branch removes the unnecessary
'static
bound.Signed-off-by: Eliza Weisman [email protected]