Auto merge of #16116 - nox:tungstenite, r=Wafflespeanut

Remove some useless thread spawning in websocket_loader

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/16116)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2017-03-24 04:48:07 -07:00 committed by GitHub
commit 3f10d510bd
4 changed files with 18 additions and 27 deletions

1
Cargo.lock generated
View file

@ -1755,7 +1755,6 @@ dependencies = [
"parse-hosts 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "parse-hosts 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)", "serde 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
"serde_derive 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 0.9.11 (registry+https://github.com/rust-lang/crates.io-index)",
"servo-websocket 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
"servo_config 0.0.1", "servo_config 0.0.1",
"servo_url 0.0.1", "servo_url 0.0.1",
"url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", "url 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",

View file

@ -161,29 +161,24 @@ pub fn init(connect: WebSocketCommunicate, connect_data: WebSocketConnectData, c
} }
}); });
let initiated_close_outgoing = initiated_close.clone(); while let Ok(dom_action) = connect.action_receiver.recv() {
let ws_sender_outgoing = ws_sender.clone();
let resource_action_receiver = connect.action_receiver;
thread::spawn(move || {
while let Ok(dom_action) = resource_action_receiver.recv() {
match dom_action { match dom_action {
WebSocketDomAction::SendMessage(MessageData::Text(data)) => { WebSocketDomAction::SendMessage(MessageData::Text(data)) => {
ws_sender_outgoing.lock().unwrap().send_message(&Message::text(data)).unwrap(); ws_sender.lock().unwrap().send_message(&Message::text(data)).unwrap();
}, },
WebSocketDomAction::SendMessage(MessageData::Binary(data)) => { WebSocketDomAction::SendMessage(MessageData::Binary(data)) => {
ws_sender_outgoing.lock().unwrap().send_message(&Message::binary(data)).unwrap(); ws_sender.lock().unwrap().send_message(&Message::binary(data)).unwrap();
}, },
WebSocketDomAction::Close(code, reason) => { WebSocketDomAction::Close(code, reason) => {
if !initiated_close_outgoing.fetch_or(true, Ordering::SeqCst) { if !initiated_close.fetch_or(true, Ordering::SeqCst) {
let message = match code { let message = match code {
Some(code) => Message::close_because(code, reason.unwrap_or("".to_owned())), Some(code) => Message::close_because(code, reason.unwrap_or("".to_owned())),
None => Message::close() None => Message::close()
}; };
ws_sender_outgoing.lock().unwrap().send_message(&message).unwrap(); ws_sender.lock().unwrap().send_message(&message).unwrap();
} }
}, },
} }
} }
});
}).expect("Thread spawning failed"); }).expect("Thread spawning failed");
} }

View file

@ -26,7 +26,6 @@ serde = "0.9"
serde_derive = "0.9" serde_derive = "0.9"
servo_config = {path = "../config", features = ["servo"]} servo_config = {path = "../config", features = ["servo"]}
servo_url = {path = "../url", features = ["servo"]} servo_url = {path = "../url", features = ["servo"]}
servo-websocket = "0.18"
url = {version = "1.2", features = ["heap_size"]} url = {version = "1.2", features = ["heap_size"]}
uuid = {version = "0.4", features = ["v4", "serde"]} uuid = {version = "0.4", features = ["v4", "serde"]}
webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]} webrender_traits = {git = "https://github.com/servo/webrender", features = ["ipc"]}

View file

@ -31,7 +31,6 @@ extern crate servo_url;
extern crate url; extern crate url;
extern crate uuid; extern crate uuid;
extern crate webrender_traits; extern crate webrender_traits;
extern crate websocket;
use cookie_rs::Cookie; use cookie_rs::Cookie;
use filemanager_thread::FileManagerThreadMsg; use filemanager_thread::FileManagerThreadMsg;
@ -47,7 +46,6 @@ use request::{Request, RequestInit};
use response::{HttpsState, Response}; use response::{HttpsState, Response};
use servo_url::ServoUrl; use servo_url::ServoUrl;
use storage_thread::StorageThreadMsg; use storage_thread::StorageThreadMsg;
use websocket::header;
pub mod blob_url_store; pub mod blob_url_store;
pub mod filemanager_thread; pub mod filemanager_thread;