Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cfa27fb

Browse files
committed
Tidy imports in rustc_data_structures::sync
1 parent 32c5449 commit cfa27fb

File tree

1 file changed

+30
-27
lines changed
  • compiler/rustc_data_structures/src

1 file changed

+30
-27
lines changed

‎compiler/rustc_data_structures/src/sync.rs

Lines changed: 30 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,23 +32,40 @@
3232
use std::collections::HashMap;
3333
use std::hash::{BuildHasher, Hash};
3434

35-
pub use crate::marker::*;
35+
pub use parking_lot::{
36+
MappedRwLockReadGuard as MappedReadGuard, MappedRwLockWriteGuard as MappedWriteGuard,
37+
RwLockReadGuard as ReadGuard, RwLockWriteGuard as WriteGuard,
38+
};
3639

37-
mod lock;
40+
pub use self::atomic::AtomicU64;
41+
pub use self::freeze::{FreezeLock, FreezeReadGuard, FreezeWriteGuard};
3842
#[doc(no_inline)]
39-
pub use lock::{Lock, LockGuard, Mode};
40-
41-
mod worker_local;
42-
pub use worker_local::{Registry, WorkerLocal};
43+
pub use self::lock::{Lock, LockGuard, Mode};
44+
pub use self::mode::{is_dyn_thread_safe, set_dyn_thread_safe_mode};
45+
pub use self::parallel::{
46+
join, par_for_each_in, par_map, parallel_guard, scope, try_par_for_each_in,
47+
};
48+
pub use self::vec::{AppendOnlyIndexVec, AppendOnlyVec};
49+
pub use self::worker_local::{Registry, WorkerLocal};
50+
pub use crate::marker::*;
4351

52+
mod freeze;
53+
mod lock;
4454
mod parallel;
45-
pub use parallel::{join, par_for_each_in, par_map, parallel_guard, scope, try_par_for_each_in};
46-
pub use vec::{AppendOnlyIndexVec, AppendOnlyVec};
47-
4855
mod vec;
56+
mod worker_local;
4957

50-
mod freeze;
51-
pub use freeze::{FreezeLock, FreezeReadGuard, FreezeWriteGuard};
58+
/// Keep the conditional imports together in a submodule, so that import-sorting
59+
/// doesn't split them up.
60+
mod atomic {
61+
// Most hosts can just use a regular AtomicU64.
62+
#[cfg(target_has_atomic = "64")]
63+
pub use std::sync::atomic::AtomicU64;
64+
65+
// Some 32-bit hosts don't have AtomicU64, so use a fallback.
66+
#[cfg(not(target_has_atomic = "64"))]
67+
pub use portable_atomic::AtomicU64;
68+
}
5269

5370
mod mode {
5471
use std::sync::atomic::{AtomicU8, Ordering};
@@ -92,18 +109,6 @@ mod mode {
92109

93110
// FIXME(parallel_compiler): Get rid of these aliases across the compiler.
94111

95-
// Use portable AtomicU64 for targets without native 64-bit atomics
96-
#[cfg(target_has_atomic = "64")]
97-
pub use std::sync::atomic::AtomicU64;
98-
99-
pub use mode::{is_dyn_thread_safe, set_dyn_thread_safe_mode};
100-
pub use parking_lot::{
101-
MappedRwLockReadGuard as MappedReadGuard, MappedRwLockWriteGuard as MappedWriteGuard,
102-
RwLockReadGuard as ReadGuard, RwLockWriteGuard as WriteGuard,
103-
};
104-
#[cfg(not(target_has_atomic = "64"))]
105-
pub use portable_atomic::AtomicU64;
106-
107112
#[derive(Debug, Default)]
108113
pub struct MTLock<T>(Lock<T>);
109114

@@ -134,8 +139,6 @@ impl<T> MTLock<T> {
134139
}
135140
}
136141

137-
use parking_lot::RwLock as InnerRwLock;
138-
139142
/// This makes locks panic if they are already held.
140143
/// It is only useful when you are running in a single thread
141144
const ERROR_CHECKING: bool = false;
@@ -157,12 +160,12 @@ impl<K: Eq + Hash, V: Eq, S: BuildHasher> HashMapExt<K, V> for HashMap<K, V, S>
157160
}
158161

159162
#[derive(Debug, Default)]
160-
pub struct RwLock<T>(InnerRwLock<T>);
163+
pub struct RwLock<T>(parking_lot::RwLock<T>);
161164

162165
impl<T> RwLock<T> {
163166
#[inline(always)]
164167
pub fn new(inner: T) -> Self {
165-
RwLock(InnerRwLock::new(inner))
168+
RwLock(parking_lot::RwLock::new(inner))
166169
}
167170

168171
#[inline(always)]

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /