feat(service): add poll_ready to Service and MakeService (#1767)

This commit is contained in:
Yusuke Sasaki
2019-02-28 02:30:52 +09:00
committed by Sean McArthur
parent ce2b540f9d
commit 0bf30ccc68
6 changed files with 84 additions and 18 deletions

View File

@@ -189,7 +189,7 @@ where
// can dispatch receive, or does it still care about, an incoming message?
match self.dispatch.poll_ready() {
Ok(Async::Ready(())) => (),
Ok(Async::NotReady) => unreachable!("dispatch not ready when conn is"),
Ok(Async::NotReady) => return Ok(Async::NotReady), // service might not be ready
Err(()) => {
trace!("dispatch no longer receiving messages");
self.close();
@@ -410,7 +410,11 @@ where
if self.in_flight.is_some() {
Ok(Async::NotReady)
} else {
Ok(Async::Ready(()))
self.service.poll_ready()
.map_err(|_e| {
// FIXME: return error value.
trace!("service closed");
})
}
}