aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/script_thread.rs
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2017-09-17 16:41:54 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2017-09-18 02:47:04 +0200
commit46628fba05a548c1c2141d7c709b6e5d812f3114 (patch)
treed4259a3a2b0255227111c1ad1e28aeec37c43a45 /components/script/script_thread.rs
parent8e78f18d2d282e651c5a8a20b2fe28cb015b264a (diff)
downloadservo-46628fba05a548c1c2141d7c709b6e5d812f3114.tar.gz
servo-46628fba05a548c1c2141d7c709b6e5d812f3114.zip
Move Task to its own module
Diffstat (limited to 'components/script/script_thread.rs')
-rw-r--r--components/script/script_thread.rs59
1 files changed, 0 insertions, 59 deletions
diff --git a/components/script/script_thread.rs b/components/script/script_thread.rs
index 21989316864..56f47cfdbef 100644
--- a/components/script/script_thread.rs
+++ b/components/script/script_thread.rs
@@ -105,15 +105,12 @@ use servo_url::{ImmutableOrigin, MutableOrigin, ServoUrl};
use std::cell::Cell;
use std::collections::{hash_map, HashMap, HashSet};
use std::default::Default;
-use std::fmt;
-use std::intrinsics;
use std::ops::Deref;
use std::option::Option;
use std::ptr;
use std::rc::Rc;
use std::result::Result;
use std::sync::Arc;
-use std::sync::atomic::{AtomicBool, Ordering};
use std::sync::mpsc::{Receiver, Select, Sender, channel};
use std::thread;
use style::context::ReflowGoal;
@@ -206,62 +203,6 @@ impl InProgressLoad {
}
}
-/// Encapsulated state required to create cancellable tasks from non-script threads.
-pub struct TaskCanceller {
- pub cancelled: Option<Arc<AtomicBool>>,
-}
-
-impl TaskCanceller {
- pub fn wrap_task<T>(&self, task: Box<T>) -> Box<Task + Send>
- where
- T: Send + Task + 'static,
- {
- box CancellableTask {
- cancelled: self.cancelled.clone(),
- inner: task,
- }
- }
-}
-
-/// A task that can be discarded by toggling a shared flag.
-pub struct CancellableTask<T: Send + Task> {
- cancelled: Option<Arc<AtomicBool>>,
- inner: Box<T>,
-}
-
-impl<T> CancellableTask<T>
-where
- T: Send + Task,
-{
- fn is_cancelled(&self) -> bool {
- self.cancelled.as_ref().map_or(false, |cancelled| {
- cancelled.load(Ordering::SeqCst)
- })
- }
-}
-
-impl<T> Task for CancellableTask<T>
-where
- T: Send + Task,
-{
- fn run(self: Box<Self>) {
- if !self.is_cancelled() {
- self.inner.run()
- }
- }
-}
-
-pub trait Task {
- fn name(&self) -> &'static str { unsafe { intrinsics::type_name::<Self>() } }
- fn run(self: Box<Self>);
-}
-
-impl fmt::Debug for Task + Send {
- fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
- fmt.debug_tuple(self.name()).field(&format_args!("...")).finish()
- }
-}
-
#[derive(Debug)]
enum MixedMessage {
FromConstellation(ConstellationControlMsg),