From 747122fb632b16a15b39f5629089b6fc2f726c56 Mon Sep 17 00:00:00 2001 From: Alan Jeffrey Date: Mon, 5 Nov 2018 09:57:26 -0600 Subject: [PATCH] Responding to review comments --- ports/libmlservo/src/lib.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ports/libmlservo/src/lib.rs b/ports/libmlservo/src/lib.rs index 8f4118d959c..532f0ff0481 100644 --- a/ports/libmlservo/src/lib.rs +++ b/ports/libmlservo/src/lib.rs @@ -233,14 +233,19 @@ pub unsafe extern "C" fn discard_servo(servo: *mut ServoInstance) { if let Some(servo) = servo.as_mut() { let mut servo = Box::from_raw(servo); let finish = Instant::now() + SHUTDOWN_DURATION; - 'outer: while Instant::now() < finish { - servo.servo.handle_events(vec![WindowEvent::Quit]); + servo.servo.handle_events(vec![WindowEvent::Quit]); + 'outer: loop { for (_, msg) in servo.servo.get_events() { if let EmbedderMsg::Shutdown = msg { break 'outer; } } + if Instant::now() > finish { + warn!("Incomplete shutdown."); + break 'outer; + } thread::sleep(SHUTDOWN_POLL_INTERVAL); + servo.servo.handle_events(vec![]); } servo.servo.deinit(); }