fix actix-server build on windows

This commit is contained in:
fakeshadow 2020-10-19 13:37:31 +08:00
parent 869175e1c9
commit 9b5400aa27
8 changed files with 25 additions and 25 deletions

View File

@ -27,7 +27,7 @@ actix-utils = "2.0.0"
concurrent-queue = "1.2.2" concurrent-queue = "1.2.2"
futures-channel = { version = "0.3.4", default-features = false } futures-channel = { version = "0.3.4", default-features = false }
futures-util = { version = "0.3.4", default-features = false, features = ["sink"] } futures-util = { version = "0.3.4", default-features = false }
log = "0.4" log = "0.4"
mio = { version = "0.7.3", features = [ "os-poll", "tcp", "uds"] } mio = { version = "0.7.3", features = [ "os-poll", "tcp", "uds"] }
num_cpus = "1.13" num_cpus = "1.13"
@ -35,7 +35,8 @@ slab = "0.4"
socket2 = "0.3" socket2 = "0.3"
[dev-dependencies] [dev-dependencies]
actix-testing = "1.0.0"
bytes = "0.5" bytes = "0.5"
env_logger = "0.7" env_logger = "0.7"
actix-testing = "1.0.0" futures-util = { version = "0.3.4", default-features = false, features = ["sink"] }
tokio = { version = "0.3.0", features = ["full"] } tokio = { version = "0.3.0", features = ["full"] }

View File

@ -1,5 +1,4 @@
use std::time::Duration; use std::time::Duration;
use std::{io, thread}; use std::{io, thread};
use actix_rt::time::{sleep_until, Instant}; use actix_rt::time::{sleep_until, Instant};

View File

@ -1,3 +1,4 @@
use std::future::Future;
use std::pin::Pin; use std::pin::Pin;
use std::task::{Context, Poll}; use std::task::{Context, Poll};
use std::time::Duration; use std::time::Duration;
@ -10,7 +11,7 @@ use futures_channel::mpsc::{unbounded, UnboundedReceiver};
use futures_channel::oneshot; use futures_channel::oneshot;
use futures_util::future::ready; use futures_util::future::ready;
use futures_util::stream::FuturesUnordered; use futures_util::stream::FuturesUnordered;
use futures_util::{future::Future, ready, stream::Stream, FutureExt, StreamExt}; use futures_util::{ready, stream::Stream, FutureExt, StreamExt};
use log::{error, info}; use log::{error, info};
use socket2::{Domain, Protocol, Socket, Type}; use socket2::{Domain, Protocol, Socket, Type};

View File

@ -4,7 +4,7 @@ use std::{fmt, io, net};
use actix_rt::net::TcpStream; use actix_rt::net::TcpStream;
use actix_service as actix; use actix_service as actix;
use actix_utils::counter::CounterGuard; use actix_utils::counter::CounterGuard;
use futures_util::future::{ok, Future, FutureExt, LocalBoxFuture}; use futures_util::future::{ready, Future, FutureExt, LocalBoxFuture};
use log::error; use log::error;
use super::builder::bind_addr; use super::builder::bind_addr;
@ -145,7 +145,7 @@ impl InternalServiceFactory for ConfiguredService {
Box::new(StreamService::new(actix::fn_service( Box::new(StreamService::new(actix::fn_service(
move |_: TcpStream| { move |_: TcpStream| {
error!("Service {:?} is not configured", name); error!("Service {:?} is not configured", name);
ok::<_, ()>(()) ready::<Result<_, ()>>(Ok(()))
}, },
))), ))),
)); ));

View File

@ -6,7 +6,7 @@ use std::time::Duration;
use actix_rt::spawn; use actix_rt::spawn;
use actix_service::{self as actix, Service, ServiceFactory as ActixServiceFactory}; use actix_service::{self as actix, Service, ServiceFactory as ActixServiceFactory};
use actix_utils::counter::CounterGuard; use actix_utils::counter::CounterGuard;
use futures_util::future::{err, ok, LocalBoxFuture, Ready}; use futures_util::future::{ready, LocalBoxFuture, Ready};
use futures_util::{FutureExt, TryFutureExt}; use futures_util::{FutureExt, TryFutureExt};
use log::error; use log::error;
@ -87,12 +87,12 @@ where
let _ = f.await; let _ = f.await;
drop(guard); drop(guard);
}); });
ok(()) ready(Ok(()))
} else { } else {
err(()) ready(Err(()))
} }
} }
_ => ok(()), _ => ready(Ok(())),
} }
} }
} }

View File

@ -4,7 +4,6 @@ use std::pin::Pin;
use std::task::{Context, Poll}; use std::task::{Context, Poll};
use futures_util::future::lazy; use futures_util::future::lazy;
use futures_util::stream::Stream;
use crate::server::Server; use crate::server::Server;
@ -43,6 +42,7 @@ impl Signals {
#[cfg(unix)] #[cfg(unix)]
{ {
use actix_rt::signal::unix; use actix_rt::signal::unix;
use futures_util::stream::Stream;
let mut streams = Vec::new(); let mut streams = Vec::new();
@ -82,7 +82,7 @@ impl Future for Signals {
self.srv.signal(Signal::Int); self.srv.signal(Signal::Int);
Poll::Ready(()) Poll::Ready(())
} }
Poll::Pending => return Poll::Pending, Poll::Pending => Poll::Pending,
} }
#[cfg(unix)] #[cfg(unix)]
{ {

View File

@ -6,19 +6,20 @@ use std::os::unix::{
io::{FromRawFd, IntoRawFd}, io::{FromRawFd, IntoRawFd},
net::{SocketAddr as StdUdsSocketAddr, UnixListener as StdUnixListener}, net::{SocketAddr as StdUdsSocketAddr, UnixListener as StdUnixListener},
}; };
#[cfg(windows)] #[cfg(windows)]
use std::os::windows::io::{FromRawSocket, IntoRawSocket}; use std::os::windows::io::{FromRawSocket, IntoRawSocket};
use mio::event::Source;
use mio::net::{
SocketAddr as MioSocketAddr, TcpListener as MioTcpListener, TcpStream as MioTcpStream,
UnixListener as MioUnixListener, UnixStream as MioUnixStream,
};
use mio::{Interest, Registry, Token};
use actix_codec::{AsyncRead, AsyncWrite}; use actix_codec::{AsyncRead, AsyncWrite};
use actix_rt::net::{TcpStream, UnixStream}; use actix_rt::net::TcpStream;
#[cfg(unix)]
use actix_rt::net::UnixStream;
use mio::event::Source;
#[cfg(unix)]
use mio::net::{
SocketAddr as MioSocketAddr, UnixListener as MioUnixListener, UnixStream as MioUnixStream,
};
use mio::net::{TcpListener as MioTcpListener, TcpStream as MioTcpStream};
use mio::{Interest, Registry, Token};
/// socket module contains a unified wrapper for Tcp/Uds listener/SocketAddr/Stream and necessary /// socket module contains a unified wrapper for Tcp/Uds listener/SocketAddr/Stream and necessary
/// trait impl for registering the listener to mio::Poll and convert stream to /// trait impl for registering the listener to mio::Poll and convert stream to
@ -203,9 +204,6 @@ impl FromStream for TcpStream {
let raw = IntoRawSocket::into_raw_socket(mio); let raw = IntoRawSocket::into_raw_socket(mio);
TcpStream::from_std(unsafe { FromRawSocket::from_raw_socket(raw) }) TcpStream::from_std(unsafe { FromRawSocket::from_raw_socket(raw) })
} }
MioStream::Uds(_) => {
panic!("Should not happen, bug in server impl");
}
} }
} }
} }

View File

@ -1,3 +1,4 @@
use std::future::Future;
use std::pin::Pin; use std::pin::Pin;
use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering}; use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
use std::sync::Arc; use std::sync::Arc;
@ -10,7 +11,7 @@ use actix_utils::counter::Counter;
use futures_channel::mpsc::{unbounded, UnboundedReceiver, UnboundedSender}; use futures_channel::mpsc::{unbounded, UnboundedReceiver, UnboundedSender};
use futures_channel::oneshot; use futures_channel::oneshot;
use futures_util::future::{join_all, LocalBoxFuture, MapOk}; use futures_util::future::{join_all, LocalBoxFuture, MapOk};
use futures_util::{future::Future, stream::Stream, FutureExt, TryFutureExt}; use futures_util::{stream::Stream, FutureExt, TryFutureExt};
use log::{error, info, trace}; use log::{error, info, trace};
use crate::service::{BoxedServerService, InternalServiceFactory, ServerMessage}; use crate::service::{BoxedServerService, InternalServiceFactory, ServerMessage};