mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-24 16:54:08 +00:00
Bug 1630676 - Replace ScopedTLS::unsafe_get by ScopedTLS::into_slots. r=emilio
We only ever look at the slots after we are done with the thread pool, so we don't need to expose any unsafety to inspect the slots.
This commit is contained in:
parent
265f2e8a89
commit
0f5b32207e
@ -165,10 +165,9 @@ pub fn traverse_dom<E, D>(
|
||||
if dump_stats || report_stats {
|
||||
let mut aggregate = mem::replace(&mut context.thread_local.statistics, Default::default());
|
||||
let parallel = maybe_tls.is_some();
|
||||
if let Some(ref mut tls) = maybe_tls {
|
||||
let slots = unsafe { tls.unsafe_get() };
|
||||
for slot in slots {
|
||||
if let Some(ref cx) = *slot.borrow() {
|
||||
if let Some(tls) = maybe_tls {
|
||||
for mut slot in tls.into_slots().into_vec() {
|
||||
if let Some(cx) = slot.get_mut() {
|
||||
aggregate += cx.statistics.clone();
|
||||
}
|
||||
}
|
||||
|
@ -71,9 +71,8 @@ impl<'scope, T: Send> ScopedTLS<'scope, T> {
|
||||
RefMut::map(opt, |x| x.as_mut().unwrap())
|
||||
}
|
||||
|
||||
/// Unsafe access to the slots. This can be used to access the TLS when
|
||||
/// the caller knows that the pool does not have access to the TLS.
|
||||
pub unsafe fn unsafe_get(&self) -> &[RefCell<Option<T>>] {
|
||||
&self.slots
|
||||
/// Returns the slots, consuming the scope.
|
||||
pub fn into_slots(self) -> Box<[RefCell<Option<T>>]> {
|
||||
self.slots
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user