about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorOliver Schneider <github35764891676564198441@oli-obk.de>2018-08-30 10:45:05 +0200
committerOliver Schneider <github35764891676564198441@oli-obk.de>2018-08-31 08:40:00 +0200
commitb68bb636c7f238dbf94f1cbf301eafac0d308393 (patch)
treebe4c38e52ce4442ade0dd18903dc28f679ebe408 /src/libstd
parentf3e1b968e3ac62cec168085ba0f9967fac9c4937 (diff)
downloadrust-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.rs8
-rw-r--r--src/libstd/sys/cloudabi/rwlock.rs8
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 {