Remove some useless thread spawning in websocket_loader

This commit is contained in:
Anthony Ramine 2017-03-24 12:06:26 +01:00
parent 2b7fc15cdc
commit 28e4252a05

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(); match dom_action {
let resource_action_receiver = connect.action_receiver; WebSocketDomAction::SendMessage(MessageData::Text(data)) => {
thread::spawn(move || { ws_sender.lock().unwrap().send_message(&Message::text(data)).unwrap();
while let Ok(dom_action) = resource_action_receiver.recv() { },
match dom_action { WebSocketDomAction::SendMessage(MessageData::Binary(data)) => {
WebSocketDomAction::SendMessage(MessageData::Text(data)) => { ws_sender.lock().unwrap().send_message(&Message::binary(data)).unwrap();
ws_sender_outgoing.lock().unwrap().send_message(&Message::text(data)).unwrap(); },
}, WebSocketDomAction::Close(code, reason) => {
WebSocketDomAction::SendMessage(MessageData::Binary(data)) => { if !initiated_close.fetch_or(true, Ordering::SeqCst) {
ws_sender_outgoing.lock().unwrap().send_message(&Message::binary(data)).unwrap(); let message = match code {
}, Some(code) => Message::close_because(code, reason.unwrap_or("".to_owned())),
WebSocketDomAction::Close(code, reason) => { None => Message::close()
if !initiated_close_outgoing.fetch_or(true, Ordering::SeqCst) { };
let message = match code { ws_sender.lock().unwrap().send_message(&message).unwrap();
Some(code) => Message::close_because(code, reason.unwrap_or("".to_owned())), }
None => Message::close() },
};
ws_sender_outgoing.lock().unwrap().send_message(&message).unwrap();
}
},
}
} }
}); }
}).expect("Thread spawning failed"); }).expect("Thread spawning failed");
} }