Fix broken client request routing and loosen trait bounds #184
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.
Changed
tokio::spawn()
in favor offutures::join!()
(see Avoid calling tokio::spawn internally #180).!Send
and!'static
streams and IO handles to be used withServer
.stdio.rs
tests to take&mut stdin
and&mut stdout
and inspect the two buffers afterwards for correctness. This one was a long time coming!Fixed
buffer_unordered()
.It seems that server-to-client request routing (introduced in #134) was broken because of
service.call(request).await
inServer
blocking forever, preventing the response from being routed back to the awaiting RPC handler. This commit fixes this issue, while also removing some strict trait bounds on thestdin
andstdout
handles, as well as theinterleave
stream, and decoupling us a tiny bit further fromtokio
.Fixes #183.