diff options
| author | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2018-05-27 07:46:19 +0200 |
|---|---|---|
| committer | John Kåre Alsaker <john.kare.alsaker@gmail.com> | 2018-06-06 15:25:17 +0200 |
| commit | 77259af56ab337d476cafeeb657c9b8953f8b75b (patch) | |
| tree | c396dd4505b1ae2b5dfe42dc8ca18e3a37fa1762 /src/librustc_data_structures/sync.rs | |
| parent | d85b5eadeaca624b886838787150adbdfdb1dcbe (diff) | |
| download | rust-77259af56ab337d476cafeeb657c9b8953f8b75b.tar.gz rust-77259af56ab337d476cafeeb657c9b8953f8b75b.zip | |
Use try_lock in collect_active_jobs
Diffstat (limited to 'src/librustc_data_structures/sync.rs')
| -rw-r--r-- | src/librustc_data_structures/sync.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/librustc_data_structures/sync.rs b/src/librustc_data_structures/sync.rs index 6f7d9e1b54b..33f6eda2a87 100644 --- a/src/librustc_data_structures/sync.rs +++ b/src/librustc_data_structures/sync.rs @@ -521,6 +521,18 @@ impl<T> Lock<T> { #[cfg(parallel_queries)] #[inline(always)] + pub fn try_lock(&self) -> Option<LockGuard<T>> { + self.0.try_lock() + } + + #[cfg(not(parallel_queries))] + #[inline(always)] + pub fn try_lock(&self) -> Option<LockGuard<T>> { + self.0.try_borrow_mut().ok() + } + + #[cfg(parallel_queries)] + #[inline(always)] pub fn lock(&self) -> LockGuard<T> { if ERROR_CHECKING { self.0.try_lock().expect("lock was already held") |
