feat(transport): support customizing Channel
's async executor
#935
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
At Embark we've been working on integrating tokio-console into our project and have used
hyper::client::Builder::executor
to pass our own executor that spawns named tasks. However its not possible to do that tonic, so tasks spawned by tonic are left unnamed.Solution
Executor
trait. Its identical to hyper's but added here not to have a public dependency on hyper.Endpoint::executor
builder method to support setting another executor.tower::buffer::Buffer
tasks on the given executor.tokio::spawn
by default.I intentionally didn't touch the server side because we don't need that at Embark but could do that if we think its relevant.