diff options
-rw-r--r-- | components/layout/context.rs | 11 | ||||
-rw-r--r-- | components/util/workqueue.rs | 4 |
2 files changed, 12 insertions, 3 deletions
diff --git a/components/layout/context.rs b/components/layout/context.rs index 1e376166300..bf560ff6cc0 100644 --- a/components/layout/context.rs +++ b/components/layout/context.rs @@ -129,7 +129,16 @@ pub struct SharedLayoutContext { pub goal: ReflowGoal, } -unsafe impl Send for SharedLayoutContext {} +// FIXME(#6569) This implementations is unsound: +// XXX UNSOUND!!! for image_cache_task +// XXX UNSOUND!!! for image_cache_sender +// XXX UNSOUND!!! for constellation_chan +// XXX UNSOUND!!! for layout_chan +// XXX UNSOUND!!! for font_cache_task +// XXX UNSOUND!!! for stylist +// XXX UNSOUND!!! for new_animations_sender +// XXX UNSOUND!!! for canvas_layers_sender +unsafe impl Sync for SharedLayoutContext {} pub struct LayoutContext<'a> { pub shared: &'a SharedLayoutContext, diff --git a/components/util/workqueue.rs b/components/util/workqueue.rs index e32e4f1ec35..a4c80359a9b 100644 --- a/components/util/workqueue.rs +++ b/components/util/workqueue.rs @@ -93,7 +93,7 @@ fn next_power_of_two(mut v: u32) -> u32 { v } -impl<QueueData: Send, WorkData: Send> WorkerThread<QueueData, WorkData> { +impl<QueueData: Sync, WorkData: Send> WorkerThread<QueueData, WorkData> { /// The main logic. This function starts up the worker and listens for /// messages. fn start(&mut self) { @@ -232,7 +232,7 @@ pub struct WorkQueue<QueueData: 'static, WorkData: 'static> { work_count: usize, } -impl<QueueData: Send, WorkData: Send> WorkQueue<QueueData, WorkData> { +impl<QueueData: Sync, WorkData: Send> WorkQueue<QueueData, WorkData> { /// Creates a new work queue and spawns all the threads associated with /// it. pub fn new(task_name: &'static str, |