diff options
author | Alan Jeffrey <ajeffrey@mozilla.com> | 2018-11-05 09:57:26 -0600 |
---|---|---|
committer | Alan Jeffrey <ajeffrey@mozilla.com> | 2018-11-05 09:57:26 -0600 |
commit | 747122fb632b16a15b39f5629089b6fc2f726c56 (patch) | |
tree | 0ae7de082967a8bc27203abbfeff416a40f3caca /ports/libmlservo | |
parent | 57085eea6a396f07904f6e1b68134cb1d4534eb0 (diff) | |
download | servo-747122fb632b16a15b39f5629089b6fc2f726c56.tar.gz servo-747122fb632b16a15b39f5629089b6fc2f726c56.zip |
Responding to review comments
Diffstat (limited to 'ports/libmlservo')
-rw-r--r-- | ports/libmlservo/src/lib.rs | 9 |
1 files 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(); } |