Add trace logging to tower-reconnect (#31)
This commit is contained in:
parent
da7a6a155c
commit
1125d1cbee
|
@ -5,5 +5,6 @@ authors = ["Carl Lerche <me@carllerche.com>"]
|
|||
publish = false
|
||||
|
||||
[dependencies]
|
||||
log = "0.3"
|
||||
futures = "0.1"
|
||||
tower = { version = "0.1", path = "../" }
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
extern crate futures;
|
||||
#[macro_use]
|
||||
extern crate log;
|
||||
extern crate tower;
|
||||
|
||||
use futures::{Future, Async, Poll};
|
||||
|
@ -65,19 +67,23 @@ where T: NewService
|
|||
loop {
|
||||
match self.state {
|
||||
Idle => {
|
||||
trace!("poll_ready; idle");
|
||||
let fut = self.new_service.new_service();
|
||||
self.state = Connecting(fut);
|
||||
continue;
|
||||
}
|
||||
Connecting(ref mut f) => {
|
||||
trace!("poll_ready; connecting");
|
||||
match f.poll() {
|
||||
Ok(Async::Ready(service)) => {
|
||||
state = Connected(service);
|
||||
}
|
||||
Ok(Async::NotReady) => {
|
||||
trace!("poll_ready; not ready");
|
||||
return Ok(Async::NotReady);
|
||||
}
|
||||
Err(e) => {
|
||||
trace!("poll_ready; error");
|
||||
state = Idle;
|
||||
ret = Err(Error::Connect(e));
|
||||
break;
|
||||
|
@ -85,14 +91,18 @@ where T: NewService
|
|||
}
|
||||
}
|
||||
Connected(ref mut inner) => {
|
||||
trace!("poll_ready; connected");
|
||||
match inner.poll_ready() {
|
||||
Ok(Async::Ready(_)) => {
|
||||
trace!("poll_ready; ready");
|
||||
return Ok(Async::Ready(()));
|
||||
}
|
||||
Ok(Async::NotReady) => {
|
||||
trace!("poll_ready; not ready");
|
||||
return Ok(Async::NotReady);
|
||||
}
|
||||
Err(_) => {
|
||||
trace!("poll_ready; error");
|
||||
state = Idle;
|
||||
}
|
||||
}
|
||||
|
@ -109,6 +119,8 @@ where T: NewService
|
|||
fn call(&mut self, request: Self::Request) -> Self::Future {
|
||||
use self::State::*;
|
||||
|
||||
trace!("call");
|
||||
|
||||
let service = match self.state {
|
||||
Connected(ref mut service) => service,
|
||||
_ => return ResponseFuture { inner: None },
|
||||
|
@ -139,6 +151,8 @@ impl<T: NewService> Future for ResponseFuture<T> {
|
|||
type Error = Error<T::Error, T::InitError>;
|
||||
|
||||
fn poll(&mut self) -> Poll<Self::Item, Self::Error> {
|
||||
trace!("poll response");
|
||||
|
||||
match self.inner {
|
||||
Some(ref mut f) => {
|
||||
f.poll().map_err(Error::Inner)
|
||||
|
|
Loading…
Reference in New Issue