about summary refs log tree commit diff
path: root/src/librustc_data_structures/sync.rs
diff options
context:
space:
mode:
authorJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2018-05-27 07:46:19 +0200
committerJohn Kåre Alsaker <john.kare.alsaker@gmail.com>2018-06-06 15:25:17 +0200
commit77259af56ab337d476cafeeb657c9b8953f8b75b (patch)
treec396dd4505b1ae2b5dfe42dc8ca18e3a37fa1762 /src/librustc_data_structures/sync.rs
parentd85b5eadeaca624b886838787150adbdfdb1dcbe (diff)
downloadrust-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.rs12
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")