aboutsummaryrefslogtreecommitdiffstats
path: root/components/net/websocket_loader.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2017-03-24 12:06:26 +0100
committerAnthony Ramine <n.oxyde@gmail.com>2017-03-24 12:46:38 +0100
commit28e4252a058af87cc274837b339f3a35712212eb (patch)
tree18c2507148d728c554f9cade515294be14a1bf99 /components/net/websocket_loader.rs
parent2b7fc15cdce9ae93130612a92068bab82de753da (diff)
downloadservo-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.rs41
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");
}