Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename RWLock to RwLock in std::sys. #95730

Merged
merged 1 commit into from
Apr 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions library/std/src/panicking.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use crate::process;
use crate::sync::atomic::{AtomicBool, Ordering};
use crate::sys::stdio::panic_output;
use crate::sys_common::backtrace;
use crate::sys_common::rwlock::StaticRWLock;
use crate::sys_common::rwlock::StaticRwLock;
use crate::sys_common::thread_info;
use crate::thread;

Expand Down Expand Up @@ -83,7 +83,7 @@ impl Hook {
}
}

static HOOK_LOCK: StaticRWLock = StaticRWLock::new();
static HOOK_LOCK: StaticRwLock = StaticRwLock::new();
static mut HOOK: Hook = Hook::Default;

/// Registers a custom panic hook, replacing any that was previously registered.
Expand Down
4 changes: 2 additions & 2 deletions library/std/src/sync/rwlock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ use crate::sys_common::rwlock as sys;
/// [`Mutex`]: super::Mutex
#[stable(feature = "rust1", since = "1.0.0")]
pub struct RwLock<T: ?Sized> {
inner: sys::MovableRWLock,
inner: sys::MovableRwLock,
poison: poison::Flag,
data: UnsafeCell<T>,
}
Expand Down Expand Up @@ -146,7 +146,7 @@ impl<T> RwLock<T> {
#[stable(feature = "rust1", since = "1.0.0")]
pub fn new(t: T) -> RwLock<T> {
RwLock {
inner: sys::MovableRWLock::new(),
inner: sys::MovableRwLock::new(),
poison: poison::Flag::new(),
data: UnsafeCell::new(t),
}
Expand Down
14 changes: 7 additions & 7 deletions library/std/src/sys/hermit/rwlock.rs
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
use crate::cell::UnsafeCell;
use crate::sys::locks::{Condvar, Mutex};

pub struct RWLock {
pub struct RwLock {
lock: Mutex,
cond: Condvar,
state: UnsafeCell<State>,
}

pub type MovableRWLock = RWLock;
pub type MovableRwLock = RwLock;

enum State {
Unlocked,
Reading(usize),
Writing,
}

unsafe impl Send for RWLock {}
unsafe impl Sync for RWLock {}
unsafe impl Send for RwLock {}
unsafe impl Sync for RwLock {}

// This rwlock implementation is a relatively simple implementation which has a
// condition variable for readers/writers as well as a mutex protecting the
Expand All @@ -26,9 +26,9 @@ unsafe impl Sync for RWLock {}
// hopefully correct this implementation is very likely to want to be changed in
// the future.

impl RWLock {
pub const fn new() -> RWLock {
RWLock { lock: Mutex::new(), cond: Condvar::new(), state: UnsafeCell::new(State::Unlocked) }
impl RwLock {
pub const fn new() -> RwLock {
RwLock { lock: Mutex::new(), cond: Condvar::new(), state: UnsafeCell::new(State::Unlocked) }
}

#[inline]
Expand Down
22 changes: 11 additions & 11 deletions library/std/src/sys/sgx/rwlock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,25 @@ use super::waitqueue::{
};
use crate::mem;

pub struct RWLock {
pub struct RwLock {
readers: SpinMutex<WaitVariable<Option<NonZeroUsize>>>,
writer: SpinMutex<WaitVariable<bool>>,
}

pub type MovableRWLock = Box<RWLock>;
pub type MovableRwLock = Box<RwLock>;

// Check at compile time that RWLock size matches C definition (see test_c_rwlock_initializer below)
// Check at compile time that RwLock size matches C definition (see test_c_rwlock_initializer below)
//
// # Safety
// Never called, as it is a compile time check.
#[allow(dead_code)]
unsafe fn rw_lock_size_assert(r: RWLock) {
unsafe { mem::transmute::<RWLock, [u8; 144]>(r) };
unsafe fn rw_lock_size_assert(r: RwLock) {
unsafe { mem::transmute::<RwLock, [u8; 144]>(r) };
}

impl RWLock {
pub const fn new() -> RWLock {
RWLock {
impl RwLock {
pub const fn new() -> RwLock {
RwLock {
readers: SpinMutex::new(WaitVariable::new(None)),
writer: SpinMutex::new(WaitVariable::new(false)),
}
Expand Down Expand Up @@ -180,7 +180,7 @@ const EINVAL: i32 = 22;

#[cfg(not(test))]
#[no_mangle]
pub unsafe extern "C" fn __rust_rwlock_rdlock(p: *mut RWLock) -> i32 {
pub unsafe extern "C" fn __rust_rwlock_rdlock(p: *mut RwLock) -> i32 {
if p.is_null() {
return EINVAL;
}
Expand All @@ -190,7 +190,7 @@ pub unsafe extern "C" fn __rust_rwlock_rdlock(p: *mut RWLock) -> i32 {

#[cfg(not(test))]
#[no_mangle]
pub unsafe extern "C" fn __rust_rwlock_wrlock(p: *mut RWLock) -> i32 {
pub unsafe extern "C" fn __rust_rwlock_wrlock(p: *mut RwLock) -> i32 {
if p.is_null() {
return EINVAL;
}
Expand All @@ -199,7 +199,7 @@ pub unsafe extern "C" fn __rust_rwlock_wrlock(p: *mut RWLock) -> i32 {
}
#[cfg(not(test))]
#[no_mangle]
pub unsafe extern "C" fn __rust_rwlock_unlock(p: *mut RWLock) -> i32 {
pub unsafe extern "C" fn __rust_rwlock_unlock(p: *mut RwLock) -> i32 {
if p.is_null() {
return EINVAL;
}
Expand Down
8 changes: 4 additions & 4 deletions library/std/src/sys/sgx/rwlock/tests.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use super::*;

// Verify that the byte pattern libunwind uses to initialize an RWLock is
// equivalent to the value of RWLock::new(). If the value changes,
// Verify that the byte pattern libunwind uses to initialize an RwLock is
// equivalent to the value of RwLock::new(). If the value changes,
// `src/UnwindRustSgx.h` in libunwind needs to be changed too.
#[test]
fn test_c_rwlock_initializer() {
Expand All @@ -18,9 +18,9 @@ fn test_c_rwlock_initializer() {
/* 0x80 */ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
];

// For the test to work, we need the padding/unused bytes in RWLock to be
// For the test to work, we need the padding/unused bytes in RwLock to be
// initialized as 0. In practice, this is the case with statics.
static RUST_RWLOCK_INIT: RWLock = RWLock::new();
static RUST_RWLOCK_INIT: RwLock = RwLock::new();

unsafe {
// If the assertion fails, that not necessarily an issue with the value
Expand Down
4 changes: 2 additions & 2 deletions library/std/src/sys/solid/os.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ use crate::os::{
solid::ffi::{OsStrExt, OsStringExt},
};
use crate::path::{self, PathBuf};
use crate::sys_common::rwlock::StaticRWLock;
use crate::sys_common::rwlock::StaticRwLock;
use crate::vec;

use super::{abi, error, itron, memchr};
Expand Down Expand Up @@ -78,7 +78,7 @@ pub fn current_exe() -> io::Result<PathBuf> {
unsupported()
}

static ENV_LOCK: StaticRWLock = StaticRWLock::new();
static ENV_LOCK: StaticRwLock = StaticRwLock::new();

pub struct Env {
iter: vec::IntoIter<(OsString, OsString)>,
Expand Down
14 changes: 7 additions & 7 deletions library/std/src/sys/solid/rwlock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,24 @@ use super::{
},
};

pub struct RWLock {
pub struct RwLock {
/// The ID of the underlying mutex object
rwl: SpinIdOnceCell<()>,
}

pub type MovableRWLock = RWLock;
pub type MovableRwLock = RwLock;

// Safety: `num_readers` is protected by `mtx_num_readers`
unsafe impl Send for RWLock {}
unsafe impl Sync for RWLock {}
unsafe impl Send for RwLock {}
unsafe impl Sync for RwLock {}

fn new_rwl() -> Result<abi::ID, ItronError> {
ItronError::err_if_negative(unsafe { abi::rwl_acre_rwl() })
}

impl RWLock {
pub const fn new() -> RWLock {
RWLock { rwl: SpinIdOnceCell::new() }
impl RwLock {
pub const fn new() -> RwLock {
RwLock { rwl: SpinIdOnceCell::new() }
}

/// Get the inner mutex's ID, which is lazily created.
Expand Down
4 changes: 2 additions & 2 deletions library/std/src/sys/unix/locks/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@ cfg_if::cfg_if! {
mod pthread_rwlock; // FIXME: Implement this using a futex
pub use futex::{Mutex, MovableMutex, Condvar, MovableCondvar};
pub use pthread_remutex::ReentrantMutex;
pub use pthread_rwlock::{RWLock, MovableRWLock};
pub use pthread_rwlock::{RwLock, MovableRwLock};
} else {
mod pthread_mutex;
mod pthread_remutex;
mod pthread_rwlock;
mod pthread_condvar;
pub use pthread_mutex::{Mutex, MovableMutex};
pub use pthread_remutex::ReentrantMutex;
pub use pthread_rwlock::{RWLock, MovableRWLock};
pub use pthread_rwlock::{RwLock, MovableRwLock};
pub use pthread_condvar::{Condvar, MovableCondvar};
}
}
14 changes: 7 additions & 7 deletions library/std/src/sys/unix/locks/pthread_rwlock.rs
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
use crate::cell::UnsafeCell;
use crate::sync::atomic::{AtomicUsize, Ordering};

pub struct RWLock {
pub struct RwLock {
inner: UnsafeCell<libc::pthread_rwlock_t>,
write_locked: UnsafeCell<bool>, // guarded by the `inner` RwLock
num_readers: AtomicUsize,
}

pub type MovableRWLock = Box<RWLock>;
pub type MovableRwLock = Box<RwLock>;

unsafe impl Send for RWLock {}
unsafe impl Sync for RWLock {}
unsafe impl Send for RwLock {}
unsafe impl Sync for RwLock {}

impl RWLock {
pub const fn new() -> RWLock {
RWLock {
impl RwLock {
pub const fn new() -> RwLock {
RwLock {
inner: UnsafeCell::new(libc::PTHREAD_RWLOCK_INITIALIZER),
write_locked: UnsafeCell::new(false),
num_readers: AtomicUsize::new(0),
Expand Down
6 changes: 3 additions & 3 deletions library/std/src/sys/unix/os.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ use crate::str;
use crate::sys::cvt;
use crate::sys::fd;
use crate::sys::memchr;
use crate::sys_common::rwlock::{StaticRWLock, StaticRWLockReadGuard};
use crate::sys_common::rwlock::{StaticRwLock, StaticRwLockReadGuard};
use crate::vec;

#[cfg(all(target_env = "gnu", not(target_os = "vxworks")))]
Expand Down Expand Up @@ -481,9 +481,9 @@ pub unsafe fn environ() -> *mut *const *const c_char {
ptr::addr_of_mut!(environ)
}

static ENV_LOCK: StaticRWLock = StaticRWLock::new();
static ENV_LOCK: StaticRwLock = StaticRwLock::new();

pub fn env_read_lock() -> StaticRWLockReadGuard {
pub fn env_read_lock() -> StaticRwLockReadGuard {
ENV_LOCK.read()
}

Expand Down
2 changes: 1 addition & 1 deletion library/std/src/sys/unsupported/locks/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ mod mutex;
mod rwlock;
pub use condvar::{Condvar, MovableCondvar};
pub use mutex::{MovableMutex, Mutex, ReentrantMutex};
pub use rwlock::{MovableRWLock, RWLock};
pub use rwlock::{MovableRwLock, RwLock};
14 changes: 7 additions & 7 deletions library/std/src/sys/unsupported/locks/rwlock.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
use crate::cell::Cell;

pub struct RWLock {
pub struct RwLock {
// This platform has no threads, so we can use a Cell here.
mode: Cell<isize>,
}

pub type MovableRWLock = RWLock;
pub type MovableRwLock = RwLock;

unsafe impl Send for RWLock {}
unsafe impl Sync for RWLock {} // no threads on this platform
unsafe impl Send for RwLock {}
unsafe impl Sync for RwLock {} // no threads on this platform

impl RWLock {
pub const fn new() -> RWLock {
RWLock { mode: Cell::new(0) }
impl RwLock {
pub const fn new() -> RwLock {
RwLock { mode: Cell::new(0) }
}

#[inline]
Expand Down
14 changes: 7 additions & 7 deletions library/std/src/sys/wasm/atomics/rwlock.rs
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
use crate::cell::UnsafeCell;
use crate::sys::locks::{Condvar, Mutex};

pub struct RWLock {
pub struct RwLock {
lock: Mutex,
cond: Condvar,
state: UnsafeCell<State>,
}

pub type MovableRWLock = RWLock;
pub type MovableRwLock = RwLock;

enum State {
Unlocked,
Reading(usize),
Writing,
}

unsafe impl Send for RWLock {}
unsafe impl Sync for RWLock {}
unsafe impl Send for RwLock {}
unsafe impl Sync for RwLock {}

// This rwlock implementation is a relatively simple implementation which has a
// condition variable for readers/writers as well as a mutex protecting the
Expand All @@ -26,9 +26,9 @@ unsafe impl Sync for RWLock {}
// hopefully correct this implementation is very likely to want to be changed in
// the future.

impl RWLock {
pub const fn new() -> RWLock {
RWLock { lock: Mutex::new(), cond: Condvar::new(), state: UnsafeCell::new(State::Unlocked) }
impl RwLock {
pub const fn new() -> RwLock {
RwLock { lock: Mutex::new(), cond: Condvar::new(), state: UnsafeCell::new(State::Unlocked) }
}

#[inline]
Expand Down
2 changes: 1 addition & 1 deletion library/std/src/sys/windows/locks/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ mod mutex;
mod rwlock;
pub use condvar::{Condvar, MovableCondvar};
pub use mutex::{MovableMutex, Mutex, ReentrantMutex};
pub use rwlock::{MovableRWLock, RWLock};
pub use rwlock::{MovableRwLock, RwLock};
14 changes: 7 additions & 7 deletions library/std/src/sys/windows/locks/rwlock.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
use crate::cell::UnsafeCell;
use crate::sys::c;

pub struct RWLock {
pub struct RwLock {
inner: UnsafeCell<c::SRWLOCK>,
}

pub type MovableRWLock = RWLock;
pub type MovableRwLock = RwLock;

unsafe impl Send for RWLock {}
unsafe impl Sync for RWLock {}
unsafe impl Send for RwLock {}
unsafe impl Sync for RwLock {}

impl RWLock {
pub const fn new() -> RWLock {
RWLock { inner: UnsafeCell::new(c::SRWLOCK_INIT) }
impl RwLock {
pub const fn new() -> RwLock {
RwLock { inner: UnsafeCell::new(c::SRWLOCK_INIT) }
}
#[inline]
pub unsafe fn read(&self) {
Expand Down
Loading