use mc_sgx_tstdc::Mutex as SgxMutex;
pub(crate) struct Mutex {
inner: SgxMutex,
}
impl Mutex {
pub(crate) const fn new() -> Mutex {
Mutex {
inner: SgxMutex::new(),
}
}
pub(crate) fn lock(&self) {
self.inner.lock().expect("Mutex got into an invalid state.")
}
pub(crate) fn unlock(&self) {
self.inner
.unlock()
.expect("Mutex got into an invalid state.")
}
pub(crate) fn try_lock(&self) -> bool {
self.inner
.try_lock()
.expect("Mutex got into an invalid state.")
}
pub(crate) fn raw(&self) -> &SgxMutex {
&self.inner
}
}