aboutsummaryrefslogtreecommitdiffstats
path: root/components/layout/layout_task.rs
diff options
context:
space:
mode:
authorMs2ger <Ms2ger@gmail.com>2015-11-16 12:41:25 +0100
committerMs2ger <Ms2ger@gmail.com>2015-11-16 12:41:25 +0100
commita2c08413dd096380de5b02f4d668e038b8c78f7d (patch)
tree203c0c472881a66e157c0b27457c7f4d15036a0c /components/layout/layout_task.rs
parent0293aa2e522c9c400dc7deed4ab4595ff8bb3123 (diff)
downloadservo-a2c08413dd096380de5b02f4d668e038b8c78f7d.tar.gz
servo-a2c08413dd096380de5b02f4d668e038b8c78f7d.zip
Remove AutoJoinScriptTask.
I don't believe there is a case where it would make sense to drop the ScriptReflow struct without joining the script thread. This approach should be somewhat more robust, and avoids the code smell of a RAII guard in an otherwise unused variable.
Diffstat (limited to 'components/layout/layout_task.rs')
-rw-r--r--components/layout/layout_task.rs12
1 files changed, 1 insertions, 11 deletions
diff --git a/components/layout/layout_task.rs b/components/layout/layout_task.rs
index f4e304aca5d..7975dd08685 100644
--- a/components/layout/layout_task.rs
+++ b/components/layout/layout_task.rs
@@ -61,7 +61,7 @@ use std::borrow::ToOwned;
use std::collections::HashMap;
use std::collections::hash_state::DefaultState;
use std::mem::transmute;
-use std::ops::{Deref, DerefMut, Drop};
+use std::ops::{Deref, DerefMut};
use std::sync::atomic::{AtomicUsize, Ordering};
use std::sync::mpsc::{channel, Sender, Receiver};
use std::sync::{Arc, Mutex, MutexGuard};
@@ -1063,16 +1063,6 @@ impl LayoutTask {
fn handle_reflow<'a, 'b>(&mut self,
data: &ScriptReflow,
possibly_locked_rw_data: &mut RwData<'a, 'b>) {
- // Make sure that every return path from this method joins the script task,
- // otherwise the script task will panic.
- struct AutoJoinScriptTask<'a> { data: &'a ScriptReflow };
- impl<'a> Drop for AutoJoinScriptTask<'a> {
- fn drop(&mut self) {
- self.data.script_join_chan.send(()).unwrap();
- }
- };
- let _ajst = AutoJoinScriptTask { data: data };
-
let document = unsafe { LayoutNode::new(&data.document) };
let document = document.as_document().unwrap();