mirror of
https://github.com/servo/servo.git
synced 2025-08-03 20:50:07 +01:00
Auto merge of #9493 - Ms2ger:paint-thread-messages, r=jdm
Use the select macro on the paint thread. <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.svg" height="40" alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/9493) <!-- Reviewable:end -->
This commit is contained in:
commit
2d4a5eb983
1 changed files with 8 additions and 15 deletions
|
@ -30,7 +30,7 @@ use std::borrow::ToOwned;
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::mem as std_mem;
|
use std::mem as std_mem;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::sync::mpsc::{Receiver, Select, Sender, channel};
|
use std::sync::mpsc::{Receiver, Sender, channel};
|
||||||
use url::Url;
|
use url::Url;
|
||||||
use util::geometry::{ExpandToPixelBoundaries};
|
use util::geometry::{ExpandToPixelBoundaries};
|
||||||
use util::opts;
|
use util::opts;
|
||||||
|
@ -301,20 +301,13 @@ impl<C> PaintThread<C> where C: PaintListener + Send + 'static {
|
||||||
|
|
||||||
loop {
|
loop {
|
||||||
let message = {
|
let message = {
|
||||||
let select = Select::new();
|
let layout_to_paint = &self.layout_to_paint_port;
|
||||||
let mut layout_to_paint_handle = select.handle(&self.layout_to_paint_port);
|
let chrome_to_paint = &self.chrome_to_paint_port;
|
||||||
let mut chrome_to_paint_handle = select.handle(&self.chrome_to_paint_port);
|
select! {
|
||||||
unsafe {
|
msg = layout_to_paint.recv() =>
|
||||||
layout_to_paint_handle.add();
|
Msg::FromLayout(msg.unwrap()),
|
||||||
chrome_to_paint_handle.add();
|
msg = chrome_to_paint.recv() =>
|
||||||
}
|
Msg::FromChrome(msg.unwrap())
|
||||||
let result = select.wait();
|
|
||||||
if result == layout_to_paint_handle.id() {
|
|
||||||
Msg::FromLayout(self.layout_to_paint_port.recv().unwrap())
|
|
||||||
} else if result == chrome_to_paint_handle.id() {
|
|
||||||
Msg::FromChrome(self.chrome_to_paint_port.recv().unwrap())
|
|
||||||
} else {
|
|
||||||
panic!("unexpected select result")
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue