Make the no-std `RwLockGuard` `try_lock` actually try
[rust-lightning] / lightning / src / sync.rs
index 482759b8ca88b626fd0585f0e73f84d33a7d967c..caf88a7cc04a8617a86e63988a7cc7a291fe96bc 100644 (file)
@@ -109,8 +109,10 @@ impl<T> RwLock<T> {
        }
 
        pub fn try_write<'a>(&'a self) -> LockResult<RwLockWriteGuard<'a, T>> {
-               // There is no try, grasshopper - only used for tests and expected to fail
-               Err(())
+               match self.inner.try_borrow_mut() {
+                       Ok(lock) => Ok(RwLockWriteGuard { lock }),
+                       Err(_) => Err(())
+               }
        }
 }