use mc_sgx_tstdc::RwLock as SgxRwLock;
pub(crate) struct RwLock {
inner: SgxRwLock,
}
impl RwLock {
pub const fn new() -> RwLock {
RwLock {
inner: SgxRwLock::new(),
}
}
pub fn read(&self) {
self.inner
.read()
.expect("RwLock got into an invalid state.")
}
pub fn try_read(&self) -> bool {
self.inner
.try_read()
.expect("RwLock got into an invalid state.")
}
pub fn write(&self) {
self.inner
.read()
.expect("RwLock got into an invalid state.")
}
pub fn try_write(&self) -> bool {
self.inner
.try_write()
.expect("RwLock got into an invalid state.")
}
pub fn read_unlock(&self) {
self.inner
.read_unlock()
.expect("RwLock got into an invalid state.")
}
pub fn write_unlock(&self) {
self.inner
.write_unlock()
.expect("RwLock got into an invalid state.")
}
}