diff --git a/aquatic/src/lib/lib.rs b/aquatic/src/lib/lib.rs index 2cc4694..b51768b 100644 --- a/aquatic/src/lib/lib.rs +++ b/aquatic/src/lib/lib.rs @@ -39,6 +39,7 @@ pub fn run(config: Config){ let state = state.clone(); let config = config.clone(); let request_sender = request_sender.clone(); + let response_sender = response_sender.clone(); let response_receiver = response_receiver.clone(); Builder::new().name(format!("socket-worker-{}", i + 1)).spawn(move || @@ -47,7 +48,8 @@ pub fn run(config: Config){ config, i, request_sender, - response_receiver + response_sender, + response_receiver, ) ).expect("spawn socket worker"); } diff --git a/aquatic/src/lib/network.rs b/aquatic/src/lib/network.rs index 67485fb..b7f1475 100644 --- a/aquatic/src/lib/network.rs +++ b/aquatic/src/lib/network.rs @@ -21,6 +21,7 @@ pub fn run_socket_worker( config: Config, token_num: usize, request_sender: Sender<(Request, SocketAddr)>, + response_sender: Sender<(Response, SocketAddr)>, response_receiver: Receiver<(Response, SocketAddr)>, ){ let mut buffer = [0u8; MAX_PACKET_SIZE]; @@ -53,6 +54,7 @@ pub fn run_socket_worker( &mut socket, &mut buffer, &request_sender, + &response_sender ); state.statistics.readable_events.fetch_add(1, Ordering::SeqCst); @@ -116,6 +118,7 @@ fn read_requests( socket: &mut UdpSocket, buffer: &mut [u8], request_sender: &Sender<(Request, SocketAddr)>, + response_sender: &Sender<(Response, SocketAddr)>, ){ let mut requests_received: usize = 0; let mut bytes_received: usize = 0; @@ -156,7 +159,7 @@ fn read_requests( message, }; - // responses.push((response.into(), src)); // FIXME + response_sender.try_send((response.into(), src)); } } },