diff options
| author | bors <bors@rust-lang.org> | 2022-11-12 01:31:39 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-11-12 01:31:39 +0000 |
| commit | b0c6527912cee113b29a33d7db0e801a58a94de5 (patch) | |
| tree | bf37c6e6c71262c0f2602f842a761880b2d46c2d /library/std/src/sys/solid/rwlock.rs | |
| parent | 42325c525b9d3885847a3f803abe53c562d289da (diff) | |
| parent | f30614a08877fac8c78113bd7823e1f4c9d20633 (diff) | |
| download | rust-b0c6527912cee113b29a33d7db0e801a58a94de5.tar.gz rust-b0c6527912cee113b29a33d7db0e801a58a94de5.zip | |
Auto merge of #103150 - joboet:remove_lock_wrappers, r=m-ou-se
Remove lock wrappers in `sys_common` This moves the lazy allocation to `sys` (SGX and UNIX). While this leads to a bit more verbosity, it will simplify future improvements by making room in `sys_common` for platform-independent implementations. This also removes the condvar check on SGX as it is not necessary for soundness and will be removed anyway once mutex has been made movable. For simplicity's sake, `libunwind` also uses lazy allocation now on SGX. This will require an update to the C definitions before merging this (CC `@raoulstrackx).` r? `@m-ou-se`
Diffstat (limited to 'library/std/src/sys/solid/rwlock.rs')
| -rw-r--r-- | library/std/src/sys/solid/rwlock.rs | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/library/std/src/sys/solid/rwlock.rs b/library/std/src/sys/solid/rwlock.rs index 0a770cf03f2..ecb4eb83b9b 100644 --- a/library/std/src/sys/solid/rwlock.rs +++ b/library/std/src/sys/solid/rwlock.rs @@ -12,8 +12,6 @@ pub struct RwLock { rwl: SpinIdOnceCell<()>, } -pub type MovableRwLock = RwLock; - // Safety: `num_readers` is protected by `mtx_num_readers` unsafe impl Send for RwLock {} unsafe impl Sync for RwLock {} @@ -37,13 +35,13 @@ impl RwLock { } #[inline] - pub unsafe fn read(&self) { + pub fn read(&self) { let rwl = self.raw(); expect_success(unsafe { abi::rwl_loc_rdl(rwl) }, &"rwl_loc_rdl"); } #[inline] - pub unsafe fn try_read(&self) -> bool { + pub fn try_read(&self) -> bool { let rwl = self.raw(); match unsafe { abi::rwl_ploc_rdl(rwl) } { abi::E_TMOUT => false, @@ -55,13 +53,13 @@ impl RwLock { } #[inline] - pub unsafe fn write(&self) { + pub fn write(&self) { let rwl = self.raw(); expect_success(unsafe { abi::rwl_loc_wrl(rwl) }, &"rwl_loc_wrl"); } #[inline] - pub unsafe fn try_write(&self) -> bool { + pub fn try_write(&self) -> bool { let rwl = self.raw(); match unsafe { abi::rwl_ploc_wrl(rwl) } { abi::E_TMOUT => false, |
