diff options
Diffstat (limited to 'components/util/workqueue.rs')
-rw-r--r-- | components/util/workqueue.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/components/util/workqueue.rs b/components/util/workqueue.rs index 69fbce97b7e..ad39b1e349f 100644 --- a/components/util/workqueue.rs +++ b/components/util/workqueue.rs @@ -157,6 +157,7 @@ impl<QueueData: Send, WorkData: Send> WorkerThread<QueueData, WorkData> { worker: &mut deque, ref_count: ref_count, queue_data: queue_data, + worker_index: self.index as u8, }; (work_unit.fun)(work_unit.data, &mut proxy); @@ -180,6 +181,7 @@ pub struct WorkerProxy<'a, QueueData: 'a, WorkData: 'a> { worker: &'a mut Worker<WorkUnit<QueueData, WorkData>>, ref_count: *mut AtomicUint, queue_data: *const QueueData, + worker_index: u8, } impl<'a, QueueData: 'static, WorkData: Send> WorkerProxy<'a, QueueData, WorkData> { @@ -199,6 +201,12 @@ impl<'a, QueueData: 'static, WorkData: Send> WorkerProxy<'a, QueueData, WorkData mem::transmute(self.queue_data) } } + + /// Retrieves the index of the worker. + #[inline] + pub fn worker_index(&self) -> u8 { + self.worker_index + } } /// A work queue on which units of work can be submitted. |