mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
webgl: shutdown webrender before acknowledging Exit message (#34917)
Fixes #34847. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
This commit is contained in:
parent
3d1b7f8f06
commit
040e29415b
1 changed files with 9 additions and 9 deletions
|
@ -296,15 +296,7 @@ impl WebGLThread {
|
|||
while let Ok(msg) = self.receiver.recv() {
|
||||
let exit = self.handle_msg(msg, &webgl_chan);
|
||||
if exit {
|
||||
// Call remove_context functions in order to correctly delete WebRender image keys.
|
||||
let context_ids: Vec<WebGLContextId> = self.contexts.keys().copied().collect();
|
||||
for id in context_ids {
|
||||
self.remove_webgl_context(id);
|
||||
}
|
||||
|
||||
// Block on shutting-down WebRender.
|
||||
self.webrender_api.shut_down(true);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -388,6 +380,14 @@ impl WebGLThread {
|
|||
self.handle_swap_buffers(swap_ids, sender, sent_time);
|
||||
},
|
||||
WebGLMsg::Exit(sender) => {
|
||||
// Call remove_context functions in order to correctly delete WebRender image keys.
|
||||
let context_ids: Vec<WebGLContextId> = self.contexts.keys().copied().collect();
|
||||
for id in context_ids {
|
||||
self.remove_webgl_context(id);
|
||||
}
|
||||
|
||||
// Block on shutting-down WebRender.
|
||||
self.webrender_api.shut_down(true);
|
||||
if let Err(e) = sender.send(()) {
|
||||
warn!("Failed to send response to WebGLMsg::Exit ({e})");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue