Skip to content

Commit bf2a6fb

Browse files
committed
async/server: Fix the the dropping of the server object
Break the accepting-new-connection loop correctly when the server object was dropped. Fixes: #284 Signed-off-by: Tim Zhang <[email protected]>
1 parent 7365e72 commit bf2a6fb

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

src/asynchronous/server.rs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,8 @@ impl Server {
219219
drop(incoming);
220220

221221
fd_tx.send(dup_fd).await.unwrap();
222-
break;
223222
}
223+
break;
224224
}
225225
}
226226
}
@@ -327,14 +327,17 @@ impl Builder for ServerBuilder {
327327
server_shutdown: self.shutdown_waiter.clone(),
328328
handler_shutdown: disconnect_notifier,
329329
},
330-
ServerWriter { rx, _server_shutdown: self.shutdown_waiter.clone() },
330+
ServerWriter {
331+
rx,
332+
_server_shutdown: self.shutdown_waiter.clone(),
333+
},
331334
)
332335
}
333336
}
334337

335338
struct ServerWriter {
336339
rx: MessageReceiver,
337-
_server_shutdown: shutdown::Waiter
340+
_server_shutdown: shutdown::Waiter,
338341
}
339342

340343
#[async_trait]
@@ -381,8 +384,8 @@ impl ReaderDelegate for ServerReader {
381384
async fn handle_msg(&self, msg: GenMessage) {
382385
let handler_shutdown_waiter = self.handler_shutdown.subscribe();
383386
let context = self.context();
384-
//Check if it is already shutdown no need select wait
385-
if !handler_shutdown_waiter.is_shutdown(){
387+
//Check if it is already shutdown no need select wait
388+
if !handler_shutdown_waiter.is_shutdown() {
386389
let (wait_tx, wait_rx) = tokio::sync::oneshot::channel::<()>();
387390
spawn(async move {
388391
select! {

0 commit comments

Comments
 (0)