diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2017-03-24 12:06:26 +0100 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2017-03-24 12:46:38 +0100 |
commit | 28e4252a058af87cc274837b339f3a35712212eb (patch) | |
tree | 18c2507148d728c554f9cade515294be14a1bf99 /components/net/websocket_loader.rs | |
parent | 2b7fc15cdce9ae93130612a92068bab82de753da (diff) | |
download | servo-28e4252a058af87cc274837b339f3a35712212eb.tar.gz servo-28e4252a058af87cc274837b339f3a35712212eb.zip |
Remove some useless thread spawning in websocket_loader
Diffstat (limited to 'components/net/websocket_loader.rs')
-rw-r--r-- | components/net/websocket_loader.rs | 41 |
1 files changed, 18 insertions, 23 deletions
diff --git a/components/net/websocket_loader.rs b/components/net/websocket_loader.rs index c75b22c4790..34c17798993 100644 --- a/components/net/websocket_loader.rs +++ b/components/net/websocket_loader.rs @@ -161,29 +161,24 @@ pub fn init(connect: WebSocketCommunicate, connect_data: WebSocketConnectData, c } }); - let initiated_close_outgoing = initiated_close.clone(); - 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 { - WebSocketDomAction::SendMessage(MessageData::Text(data)) => { - ws_sender_outgoing.lock().unwrap().send_message(&Message::text(data)).unwrap(); - }, - WebSocketDomAction::SendMessage(MessageData::Binary(data)) => { - ws_sender_outgoing.lock().unwrap().send_message(&Message::binary(data)).unwrap(); - }, - WebSocketDomAction::Close(code, reason) => { - if !initiated_close_outgoing.fetch_or(true, Ordering::SeqCst) { - let message = match code { - Some(code) => Message::close_because(code, reason.unwrap_or("".to_owned())), - None => Message::close() - }; - ws_sender_outgoing.lock().unwrap().send_message(&message).unwrap(); - } - }, - } + while let Ok(dom_action) = connect.action_receiver.recv() { + match dom_action { + WebSocketDomAction::SendMessage(MessageData::Text(data)) => { + ws_sender.lock().unwrap().send_message(&Message::text(data)).unwrap(); + }, + WebSocketDomAction::SendMessage(MessageData::Binary(data)) => { + ws_sender.lock().unwrap().send_message(&Message::binary(data)).unwrap(); + }, + WebSocketDomAction::Close(code, reason) => { + if !initiated_close.fetch_or(true, Ordering::SeqCst) { + let message = match code { + Some(code) => Message::close_because(code, reason.unwrap_or("".to_owned())), + None => Message::close() + }; + ws_sender.lock().unwrap().send_message(&message).unwrap(); + } + }, } - }); + } }).expect("Thread spawning failed"); } |