diff --git a/src/streaming/pipeline/server.rs b/src/streaming/pipeline/server.rs
index 5a18f267..8170dcd0 100644
--- a/src/streaming/pipeline/server.rs
+++ b/src/streaming/pipeline/server.rs
@@ -1,8 +1,12 @@
use BindServer;
use futures::stream::Stream;
+use futures::task::{EventSet, UnparkEvent, with_unpark_event};
use futures::{Future, IntoFuture, Poll, Async};
+use std::collections::BTreeSet;
use std::collections::VecDeque;
use std::io;
+use std::num::Wrapping;
+use std::sync::{Arc, Mutex};
use streaming::{Message, Body};
use super::advanced::{Pipeline, PipelineMessage};
use super::{Frame, Transport};
@@ -72,6 +76,9 @@ impl
BindServer, T> for P where
service: service,
transport: transport,
in_flight: VecDeque::with_capacity(32),
+ event_offset: Wrapping(0),
+ polled_to: 0,
+ event_set: Arc::new(DispatchEventSet{ inner: Mutex::new(BTreeSet::new()) }),
};
Pipeline::new(dispatch)
});
@@ -88,6 +95,9 @@ struct Dispatch where
service: S,
transport: P::Transport,
in_flight: VecDeque>,
+ event_offset: Wrapping,
+ polled_to: usize,
+ event_set: Arc
}
enum InFlight {
@@ -131,8 +141,28 @@ impl super::advanced::Dispatch for Dispatch where
}
fn poll(&mut self) -> Poll