aboutsummaryrefslogtreecommitdiff
path: root/src/loom/mocked.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/loom/mocked.rs')
-rw-r--r--src/loom/mocked.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/loom/mocked.rs b/src/loom/mocked.rs
index 7891395..367d59b 100644
--- a/src/loom/mocked.rs
+++ b/src/loom/mocked.rs
@@ -1,5 +1,32 @@
pub(crate) use loom::*;
+pub(crate) mod sync {
+
+ pub(crate) use loom::sync::MutexGuard;
+
+ #[derive(Debug)]
+ pub(crate) struct Mutex<T>(loom::sync::Mutex<T>);
+
+ #[allow(dead_code)]
+ impl<T> Mutex<T> {
+ #[inline]
+ pub(crate) fn new(t: T) -> Mutex<T> {
+ Mutex(loom::sync::Mutex::new(t))
+ }
+
+ #[inline]
+ pub(crate) fn lock(&self) -> MutexGuard<'_, T> {
+ self.0.lock().unwrap()
+ }
+
+ #[inline]
+ pub(crate) fn try_lock(&self) -> Option<MutexGuard<'_, T>> {
+ self.0.try_lock().ok()
+ }
+ }
+ pub(crate) use loom::sync::*;
+}
+
pub(crate) mod rand {
pub(crate) fn seed() -> u64 {
1