aboutsummaryrefslogtreecommitdiffstats
path: root/ports/libmlservo
diff options
context:
space:
mode:
authorAlan Jeffrey <ajeffrey@mozilla.com>2018-11-05 09:57:26 -0600
committerAlan Jeffrey <ajeffrey@mozilla.com>2018-11-05 09:57:26 -0600
commit747122fb632b16a15b39f5629089b6fc2f726c56 (patch)
tree0ae7de082967a8bc27203abbfeff416a40f3caca /ports/libmlservo
parent57085eea6a396f07904f6e1b68134cb1d4534eb0 (diff)
downloadservo-747122fb632b16a15b39f5629089b6fc2f726c56.tar.gz
servo-747122fb632b16a15b39f5629089b6fc2f726c56.zip
Responding to review comments
Diffstat (limited to 'ports/libmlservo')
-rw-r--r--ports/libmlservo/src/lib.rs9
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();
}