in netbench/src/multiplex.rs [417:433]
fn poll_receive_finish(&mut self, owner: Owner, id: u64, cx: &mut Context) -> Poll<Result<()>> {
if let Entry::Occupied(mut entry) = self.streams[owner].entry(id) {
let stream = entry.get_mut();
if let Some(rx) = stream.rx.as_mut() {
ready!(rx.poll_finish(cx));
}
stream.rx = None;
if stream.tx.is_none() {
entry.remove();
self.stream_controller.close();
}
}
Ok(()).into()
}