aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/websocket.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2017-09-20 10:37:09 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2017-09-20 10:37:09 +0200
commit6c9fb5ae7a4eb6cff38de3bb6446af304a32bc8a (patch)
tree63a8bd729171e5886340fe89774f2287bd11cb5b /components/script/dom/websocket.rs
parent52527d6f9dfaae13458059243d975f5336bdead4 (diff)
downloadservo-6c9fb5ae7a4eb6cff38de3bb6446af304a32bc8a.tar.gz
servo-6c9fb5ae7a4eb6cff38de3bb6446af304a32bc8a.zip
Introduce TaskOnce
Having both TaskBox and TaskOnce allows us to remove the superfluous inner boxing from CancellableTask<T>.
Diffstat (limited to 'components/script/dom/websocket.rs')
-rw-r--r--components/script/dom/websocket.rs26
1 files changed, 13 insertions, 13 deletions
diff --git a/components/script/dom/websocket.rs b/components/script/dom/websocket.rs
index bb48cec942e..3d482bb4fa5 100644
--- a/components/script/dom/websocket.rs
+++ b/components/script/dom/websocket.rs
@@ -37,7 +37,7 @@ use std::borrow::ToOwned;
use std::cell::Cell;
use std::ptr;
use std::thread;
-use task::{TaskBox, TaskCanceller};
+use task::{TaskOnce, TaskCanceller};
use task_source::TaskSource;
use task_source::networking::NetworkingTaskSource;
@@ -74,7 +74,7 @@ pub fn close_the_websocket_connection(
code: Option<u16>,
reason: String,
) {
- let close_task = box CloseTask {
+ let close_task = CloseTask {
address: address,
failed: false,
code: code,
@@ -88,7 +88,7 @@ pub fn fail_the_websocket_connection(
task_source: &NetworkingTaskSource,
canceller: &TaskCanceller,
) {
- let close_task = box CloseTask {
+ let close_task = CloseTask {
address: address,
failed: true,
code: Some(close_code::ABNORMAL),
@@ -206,14 +206,14 @@ impl WebSocket {
while let Ok(event) = dom_event_receiver.recv() {
match event {
WebSocketNetworkEvent::ConnectionEstablished { protocol_in_use } => {
- let open_thread = box ConnectionEstablishedTask {
+ let open_thread = ConnectionEstablishedTask {
address: address.clone(),
protocol_in_use,
};
task_source.queue_with_canceller(open_thread, &canceller).unwrap();
},
WebSocketNetworkEvent::MessageReceived(message) => {
- let message_thread = box MessageReceivedTask {
+ let message_thread = MessageReceivedTask {
address: address.clone(),
message: message,
};
@@ -397,9 +397,9 @@ struct ConnectionEstablishedTask {
protocol_in_use: Option<String>,
}
-impl TaskBox for ConnectionEstablishedTask {
+impl TaskOnce for ConnectionEstablishedTask {
/// https://html.spec.whatwg.org/multipage/#feedback-from-the-protocol:concept-websocket-established
- fn run_box(self: Box<Self>) {
+ fn run_once(self) {
let ws = self.address.root();
// Step 1.
@@ -422,13 +422,13 @@ struct BufferedAmountTask {
address: Trusted<WebSocket>,
}
-impl TaskBox for BufferedAmountTask {
+impl TaskOnce for BufferedAmountTask {
// See https://html.spec.whatwg.org/multipage/#dom-websocket-bufferedamount
//
// To be compliant with standards, we need to reset bufferedAmount only when the event loop
// reaches step 1. In our implementation, the bytes will already have been sent on a background
// thread.
- fn run_box(self: Box<Self>) {
+ fn run_once(self) {
let ws = self.address.root();
ws.buffered_amount.set(0);
@@ -443,8 +443,8 @@ struct CloseTask {
reason: Option<String>,
}
-impl TaskBox for CloseTask {
- fn run_box(self: Box<Self>) {
+impl TaskOnce for CloseTask {
+ fn run_once(self) {
let ws = self.address.root();
if ws.ready_state.get() == WebSocketRequestState::Closed {
@@ -483,9 +483,9 @@ struct MessageReceivedTask {
message: MessageData,
}
-impl TaskBox for MessageReceivedTask {
+impl TaskOnce for MessageReceivedTask {
#[allow(unsafe_code)]
- fn run_box(self: Box<Self>) {
+ fn run_once(self) {
let ws = self.address.root();
debug!("MessageReceivedTask::handler({:p}): readyState={:?}", &*ws,
ws.ready_state.get());