From 962a53d4741e4e2e514f49d9b13831f3cd4e7b48 Mon Sep 17 00:00:00 2001 From: John Kåre Alsaker Date: Mon, 26 Mar 2018 20:52:59 +0200 Subject: Add try_write to RwLock --- src/librustc_data_structures/sync.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/librustc_data_structures') diff --git a/src/librustc_data_structures/sync.rs b/src/librustc_data_structures/sync.rs index 184ef136976..0f534f0adec 100644 --- a/src/librustc_data_structures/sync.rs +++ b/src/librustc_data_structures/sync.rs @@ -388,6 +388,18 @@ impl RwLock { f(&*self.read()) } + #[cfg(not(parallel_queries))] + #[inline(always)] + pub fn try_write(&self) -> Result, ()> { + self.0.try_borrow_mut().map_err(|_| ()) + } + + #[cfg(parallel_queries)] + #[inline(always)] + pub fn try_write(&self) -> Result, ()> { + self.0.try_write().ok_or(()) + } + #[cfg(not(parallel_queries))] #[inline(always)] pub fn write(&self) -> WriteGuard { -- cgit 1.4.1-3-g733a5