引入shell模块
This commit is contained in:
@@ -30,7 +30,7 @@ impl OwnedWriteHalfAbstraction for tcp::OwnedWriteHalf {}
|
||||
impl OwnedWriteHalfAbstraction for unix::OwnedWriteHalf {}
|
||||
|
||||
#[async_trait]
|
||||
pub trait AcceptSocket {
|
||||
pub trait AcceptSocket: Send + Sync {
|
||||
async fn accept(
|
||||
&self,
|
||||
) -> io::Result<(
|
||||
|
||||
@@ -29,7 +29,7 @@ pub type ClientList = Arc<Mutex<HashMap<ClientID, Arc<Client::Client>>>>;
|
||||
|
||||
/// 服务器抽象
|
||||
pub struct Server {
|
||||
listener: Box<dyn AcceptSocket>,
|
||||
listener: Arc<dyn AcceptSocket>,
|
||||
close_sender: CloseSender,
|
||||
client_list: ClientList,
|
||||
next_id: AtomicU64,
|
||||
@@ -38,7 +38,7 @@ pub struct Server {
|
||||
}
|
||||
|
||||
impl Server {
|
||||
fn new(listener: Box<dyn AcceptSocket>, cert: ServerCert, event: Arc<dyn ServerEvent>) -> Self {
|
||||
fn new(listener: Arc<dyn AcceptSocket>, cert: ServerCert, event: Arc<dyn ServerEvent>) -> Self {
|
||||
Server {
|
||||
listener,
|
||||
close_sender: CloseSender::new(),
|
||||
@@ -55,7 +55,7 @@ impl Server {
|
||||
event: Arc<dyn ServerEvent>,
|
||||
) -> io::Result<Self> {
|
||||
let listener = TcpListener::bind(addr).await?;
|
||||
Ok(Server::new(Box::new(listener), cert, event))
|
||||
Ok(Server::new(Arc::new(listener), cert, event))
|
||||
}
|
||||
|
||||
pub async fn new_unix<P>(
|
||||
@@ -67,7 +67,7 @@ impl Server {
|
||||
P: AsRef<Path>,
|
||||
{
|
||||
let unix = UnixListener::bind(path)?;
|
||||
Ok(Server::new(Box::new(unix), cert, event))
|
||||
Ok(Server::new(Arc::new(unix), cert, event))
|
||||
}
|
||||
|
||||
/// 广播关闭消息
|
||||
|
||||
Reference in New Issue
Block a user