mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +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();
|
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");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue