about summary refs log tree commit diff
path: root/library/std/src/sys/unix/locks/pthread_remutex.rs
diff options
context:
space:
mode:
authorMara Bos <m-ou.se@m-ou.se>2022-04-14 11:11:41 +0200
committerMara Bos <m-ou.se@m-ou.se>2022-04-16 11:30:22 +0200
commit4212de63ab04649ac92a1b4e525d38b73dc5658c (patch)
treed56aca6112ccc9302195467bd83a433bad8e3917 /library/std/src/sys/unix/locks/pthread_remutex.rs
parent07bb916d44a66d2caba427c7ee132bbeb245977b (diff)
downloadrust-4212de63ab04649ac92a1b4e525d38b73dc5658c.tar.gz
rust-4212de63ab04649ac92a1b4e525d38b73dc5658c.zip
Use a single ReentrantMutex implementation on all platforms.
Diffstat (limited to 'library/std/src/sys/unix/locks/pthread_remutex.rs')
-rw-r--r--library/std/src/sys/unix/locks/pthread_remutex.rs46
1 files changed, 0 insertions, 46 deletions
diff --git a/library/std/src/sys/unix/locks/pthread_remutex.rs b/library/std/src/sys/unix/locks/pthread_remutex.rs
deleted file mode 100644
index b006181ee3a..00000000000
--- a/library/std/src/sys/unix/locks/pthread_remutex.rs
+++ /dev/null
@@ -1,46 +0,0 @@
-use super::pthread_mutex::PthreadMutexAttr;
-use crate::cell::UnsafeCell;
-use crate::mem::MaybeUninit;
-use crate::sys::cvt_nz;
-
-pub struct ReentrantMutex {
-    inner: UnsafeCell<libc::pthread_mutex_t>,
-}
-
-unsafe impl Send for ReentrantMutex {}
-unsafe impl Sync for ReentrantMutex {}
-
-impl ReentrantMutex {
-    pub const unsafe fn uninitialized() -> ReentrantMutex {
-        ReentrantMutex { inner: UnsafeCell::new(libc::PTHREAD_MUTEX_INITIALIZER) }
-    }
-
-    pub unsafe fn init(&self) {
-        let mut attr = MaybeUninit::<libc::pthread_mutexattr_t>::uninit();
-        cvt_nz(libc::pthread_mutexattr_init(attr.as_mut_ptr())).unwrap();
-        let attr = PthreadMutexAttr(&mut attr);
-        cvt_nz(libc::pthread_mutexattr_settype(attr.0.as_mut_ptr(), libc::PTHREAD_MUTEX_RECURSIVE))
-            .unwrap();
-        cvt_nz(libc::pthread_mutex_init(self.inner.get(), attr.0.as_ptr())).unwrap();
-    }
-
-    pub unsafe fn lock(&self) {
-        let result = libc::pthread_mutex_lock(self.inner.get());
-        debug_assert_eq!(result, 0);
-    }
-
-    #[inline]
-    pub unsafe fn try_lock(&self) -> bool {
-        libc::pthread_mutex_trylock(self.inner.get()) == 0
-    }
-
-    pub unsafe fn unlock(&self) {
-        let result = libc::pthread_mutex_unlock(self.inner.get());
-        debug_assert_eq!(result, 0);
-    }
-
-    pub unsafe fn destroy(&self) {
-        let result = libc::pthread_mutex_destroy(self.inner.get());
-        debug_assert_eq!(result, 0);
-    }
-}