diff options
| author | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-08-30 10:45:05 +0200 |
|---|---|---|
| committer | Oliver Schneider <github35764891676564198441@oli-obk.de> | 2018-08-31 08:40:00 +0200 |
| commit | b68bb636c7f238dbf94f1cbf301eafac0d308393 (patch) | |
| tree | be4c38e52ce4442ade0dd18903dc28f679ebe408 /src/libstd | |
| parent | f3e1b968e3ac62cec168085ba0f9967fac9c4937 (diff) | |
| download | rust-b68bb636c7f238dbf94f1cbf301eafac0d308393.tar.gz rust-b68bb636c7f238dbf94f1cbf301eafac0d308393.zip | |
Make `Condvar::new` and `RWLock::new` min const fn for cloudabi
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/sys/cloudabi/condvar.rs | 8 | ||||
| -rw-r--r-- | src/libstd/sys/cloudabi/rwlock.rs | 8 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/libstd/sys/cloudabi/condvar.rs b/src/libstd/sys/cloudabi/condvar.rs index c05c837ade2..ccf848a9be4 100644 --- a/src/libstd/sys/cloudabi/condvar.rs +++ b/src/libstd/sys/cloudabi/condvar.rs @@ -28,11 +28,13 @@ pub struct Condvar { unsafe impl Send for Condvar {} unsafe impl Sync for Condvar {} +const NEW: Condvar = Condvar { + condvar: UnsafeCell::new(AtomicU32::new(abi::CONDVAR_HAS_NO_WAITERS.0)), +}; + impl Condvar { pub const fn new() -> Condvar { - Condvar { - condvar: UnsafeCell::new(AtomicU32::new(abi::CONDVAR_HAS_NO_WAITERS.0)), - } + NEW } pub unsafe fn init(&mut self) {} diff --git a/src/libstd/sys/cloudabi/rwlock.rs b/src/libstd/sys/cloudabi/rwlock.rs index 8539aec5e2c..dc8624ec8a1 100644 --- a/src/libstd/sys/cloudabi/rwlock.rs +++ b/src/libstd/sys/cloudabi/rwlock.rs @@ -32,11 +32,13 @@ pub unsafe fn raw(r: &RWLock) -> *mut AtomicU32 { unsafe impl Send for RWLock {} unsafe impl Sync for RWLock {} +const NEW: RWLock = RWLock { + lock: UnsafeCell::new(AtomicU32::new(abi::LOCK_UNLOCKED.0)), +}; + impl RWLock { pub const fn new() -> RWLock { - RWLock { - lock: UnsafeCell::new(AtomicU32::new(abi::LOCK_UNLOCKED.0)), - } + NEW } pub unsafe fn try_read(&self) -> bool { |
