Skip to content

Commit

Permalink
refactor(server): work around deprecation of poll_accept method in …
Browse files Browse the repository at this point in the history
…tokio (#1890)
  • Loading branch information
yotamofek authored and seanmonstar committed Aug 14, 2019
1 parent a543c8e commit 9d5299b
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 3 deletions.
2 changes: 1 addition & 1 deletion examples/send_file.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#![deny(warnings)]

use tokio::io::AsyncReadExt;
use tokio_fs::file::File;
use tokio_fs::File;

use hyper::{Body, Method, Result, Request, Response, Server, StatusCode};
use hyper::service::{make_service_fn, service_fn};
Expand Down
5 changes: 4 additions & 1 deletion src/common/drain.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ use std::mem;
use tokio_sync::{mpsc, watch};

use super::{Future, Never, Poll, Pin, task};
use futures_util::FutureExt as _;

// Sentinel value signaling that the watch is still open
enum Action {
Expand Down Expand Up @@ -99,7 +100,9 @@ where
loop {
match mem::replace(&mut me.state, State::Draining) {
State::Watch(on_drain) => {
match me.watch.rx.poll_ref(cx) {
let mut recv_fut = me.watch.rx.recv_ref().boxed();

match recv_fut.poll_unpin(cx) {
Poll::Ready(None) => {
// Drain has been triggered!
on_drain(unsafe { Pin::new_unchecked(&mut me.future) });
Expand Down
5 changes: 4 additions & 1 deletion src/server/tcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use std::net::{SocketAddr, TcpListener as StdTcpListener};
use std::time::{Duration, Instant};

use futures_core::Stream;
use futures_util::FutureExt as _;
use tokio_reactor::Handle;
use tokio_tcp::TcpListener;
use tokio_timer::Delay;
Expand Down Expand Up @@ -105,8 +106,10 @@ impl AddrIncoming {
}
self.timeout = None;

let mut accept_fut = self.listener.accept().boxed();

loop {
match Pin::new(&mut self.listener).poll_accept(cx) {
match accept_fut.poll_unpin(cx) {
Poll::Ready(Ok((socket, addr))) => {
if let Some(dur) = self.tcp_keepalive_timeout {
if let Err(e) = socket.set_keepalive(Some(dur)) {
Expand Down

0 comments on commit 9d5299b

Please sign in to comment.