mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Remove some useless thread spawning in websocket_loader
This commit is contained in:
parent
2b7fc15cdc
commit
28e4252a05
1 changed files with 18 additions and 23 deletions
|
@ -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");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue