Issue 4497: Converts WorkerPostMessage into a Runnable.

Implements WorkerMessage handler implementing Runnable trait.
This commit is contained in:
Bharath M R 2015-01-04 12:26:27 +05:30
parent dd84ae6bfb
commit 50d53c9fa3
3 changed files with 24 additions and 11 deletions

View file

@ -16,7 +16,7 @@ use dom::bindings::utils::{Reflectable, reflect_dom_object};
use dom::dedicatedworkerglobalscope::DedicatedWorkerGlobalScope;
use dom::eventtarget::{EventTarget, EventTargetHelpers, EventTargetTypeId};
use dom::messageevent::MessageEvent;
use script_task::{ScriptChan, ScriptMsg};
use script_task::{ScriptChan, ScriptMsg, Runnable};
use servo_util::str::DOMString;
@ -120,3 +120,24 @@ impl<'a> WorkerMethods for JSRef<'a, Worker> {
event_handler!(message, GetOnmessage, SetOnmessage)
}
pub struct WorkerMessageHandler {
addr: TrustedWorkerAddress,
data: *mut u64,
nbytes: size_t
}
impl WorkerMessageHandler {
pub fn new(addr: TrustedWorkerAddress, data: *mut u64, nbytes: size_t) -> WorkerMessageHandler {
WorkerMessageHandler {
addr: addr,
data: data,
nbytes: nbytes,
}
}
}
impl Runnable for WorkerMessageHandler {
fn handler(&self){
Worker::handle_message(self.addr.clone(), self.data, self.nbytes);
}
}