diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2014-11-26 08:12:18 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2014-12-14 04:21:56 -0500 |
| commit | 5c3d3989192f88b16f39d554c3844700c91b6c8e (patch) | |
| tree | 59c77544a06d3f4c2d363b5afe37c91a444e78d6 /src/libstd/sync | |
| parent | 394f6846b80240480f8d7ce4b3d5d4c42ba85201 (diff) | |
| download | rust-5c3d3989192f88b16f39d554c3844700c91b6c8e.tar.gz rust-5c3d3989192f88b16f39d554c3844700c91b6c8e.zip | |
Mostly rote conversion of `proc()` to `move||` (and occasionally `Thunk::new`)
Diffstat (limited to 'src/libstd/sync')
| -rw-r--r-- | src/libstd/sync/atomic.rs | 4 | ||||
| -rw-r--r-- | src/libstd/sync/barrier.rs | 4 | ||||
| -rw-r--r-- | src/libstd/sync/condvar.rs | 10 | ||||
| -rw-r--r-- | src/libstd/sync/mutex.rs | 16 | ||||
| -rw-r--r-- | src/libstd/sync/once.rs | 2 | ||||
| -rw-r--r-- | src/libstd/sync/rwlock.rs | 16 | ||||
| -rw-r--r-- | src/libstd/sync/semaphore.rs | 10 | ||||
| -rw-r--r-- | src/libstd/sync/task_pool.rs | 17 |
8 files changed, 40 insertions, 39 deletions
diff --git a/src/libstd/sync/atomic.rs b/src/libstd/sync/atomic.rs index 2bb55188113..fe5b962fa4b 100644 --- a/src/libstd/sync/atomic.rs +++ b/src/libstd/sync/atomic.rs @@ -47,7 +47,7 @@ //! let spinlock = Arc::new(AtomicUint::new(1)); //! //! let spinlock_clone = spinlock.clone(); -//! spawn(proc() { +//! spawn(move|| { //! spinlock_clone.store(0, SeqCst); //! }); //! @@ -68,7 +68,7 @@ //! let shared_big_object = Arc::new(AtomicOption::empty()); //! //! let shared_big_object_clone = shared_big_object.clone(); -//! spawn(proc() { +//! spawn(move|| { //! let unwrapped_big_object = shared_big_object_clone.take(SeqCst); //! if unwrapped_big_object.is_some() { //! println!("got a big object from another task"); diff --git a/src/libstd/sync/barrier.rs b/src/libstd/sync/barrier.rs index 5e6dc6ec650..1b8574604a0 100644 --- a/src/libstd/sync/barrier.rs +++ b/src/libstd/sync/barrier.rs @@ -21,7 +21,7 @@ use sync::{Mutex, Condvar}; /// let c = barrier.clone(); /// // The same messages will be printed together. /// // You will NOT see any interleaving. -/// spawn(proc() { +/// spawn(move|| { /// println!("before wait"); /// c.wait(); /// println!("after wait"); @@ -94,7 +94,7 @@ mod tests { for _ in range(0u, 9) { let c = barrier.clone(); let tx = tx.clone(); - spawn(proc() { + spawn(move|| { c.wait(); tx.send(true); }); diff --git a/src/libstd/sync/condvar.rs b/src/libstd/sync/condvar.rs index 0fdd57b2792..3bdab261e19 100644 --- a/src/libstd/sync/condvar.rs +++ b/src/libstd/sync/condvar.rs @@ -41,7 +41,7 @@ use time::Duration; /// let pair2 = pair.clone(); /// /// // Inside of our lock, spawn a new thread, and then wait for it to start -/// spawn(proc() { +/// spawn(move|| { /// let &(ref lock, ref cvar) = &*pair2; /// let mut started = lock.lock(); /// *started = true; @@ -282,7 +282,7 @@ mod tests { static M: StaticMutex = MUTEX_INIT; let g = M.lock(); - spawn(proc() { + spawn(move|| { let _g = M.lock(); C.notify_one(); }); @@ -300,7 +300,7 @@ mod tests { for _ in range(0, N) { let data = data.clone(); let tx = tx.clone(); - spawn(proc() { + spawn(move|| { let &(ref lock, ref cond) = &*data; let mut cnt = lock.lock(); *cnt += 1; @@ -334,7 +334,7 @@ mod tests { let g = M.lock(); assert!(!C.wait_timeout(&g, Duration::nanoseconds(1000))); - spawn(proc() { + spawn(move|| { let _g = M.lock(); C.notify_one(); }); @@ -351,7 +351,7 @@ mod tests { static C: StaticCondvar = CONDVAR_INIT; let g = M1.lock(); - spawn(proc() { + spawn(move|| { let _g = M1.lock(); C.notify_one(); }); diff --git a/src/libstd/sync/mutex.rs b/src/libstd/sync/mutex.rs index 4e07d54c57e..33f8d254c71 100644 --- a/src/libstd/sync/mutex.rs +++ b/src/libstd/sync/mutex.rs @@ -47,7 +47,7 @@ use sys_common::mutex as sys; /// let (tx, rx) = channel(); /// for _ in range(0u, 10) { /// let (data, tx) = (data.clone(), tx.clone()); -/// spawn(proc() { +/// spawn(move|| { /// // The shared static can only be accessed once the lock is held. /// // Our non-atomic increment is safe because we're the only thread /// // which can access the shared state when the lock is held. @@ -313,9 +313,9 @@ mod test { let (tx, rx) = channel(); for _ in range(0, K) { let tx2 = tx.clone(); - spawn(proc() { inc(); tx2.send(()); }); + spawn(move|| { inc(); tx2.send(()); }); let tx2 = tx.clone(); - spawn(proc() { inc(); tx2.send(()); }); + spawn(move|| { inc(); tx2.send(()); }); } drop(tx); @@ -339,7 +339,7 @@ mod test { let arc = Arc::new((Mutex::new(false), Condvar::new())); let arc2 = arc.clone(); let (tx, rx) = channel(); - spawn(proc() { + spawn(move|| { // wait until parent gets in rx.recv(); let &(ref lock, ref cvar) = &*arc2; @@ -364,7 +364,7 @@ mod test { let arc2 = arc.clone(); let (tx, rx) = channel(); - spawn(proc() { + spawn(move|| { rx.recv(); let &(ref lock, ref cvar) = &*arc2; let _g = lock.lock(); @@ -386,7 +386,7 @@ mod test { fn test_mutex_arc_poison() { let arc = Arc::new(Mutex::new(1i)); let arc2 = arc.clone(); - let _ = task::try(proc() { + let _ = task::try(move|| { let lock = arc2.lock(); assert_eq!(*lock, 2); }); @@ -401,7 +401,7 @@ mod test { let arc = Arc::new(Mutex::new(1i)); let arc2 = Arc::new(Mutex::new(arc)); let (tx, rx) = channel(); - spawn(proc() { + spawn(move|| { let lock = arc2.lock(); let lock2 = lock.deref().lock(); assert_eq!(*lock2, 1); @@ -414,7 +414,7 @@ mod test { fn test_mutex_arc_access_in_unwind() { let arc = Arc::new(Mutex::new(1i)); let arc2 = arc.clone(); - let _ = task::try::<()>(proc() { + let _ = task::try(move|| -> () { struct Unwinder { i: Arc<Mutex<int>>, } diff --git a/src/libstd/sync/once.rs b/src/libstd/sync/once.rs index 1bcdc760fc6..263937c5cbe 100644 --- a/src/libstd/sync/once.rs +++ b/src/libstd/sync/once.rs @@ -142,7 +142,7 @@ mod test { let (tx, rx) = channel(); for _ in range(0u, 10) { let tx = tx.clone(); - spawn(proc() { + spawn(move|| { for _ in range(0u, 4) { task::deschedule() } unsafe { O.doit(|| { diff --git a/src/libstd/sync/rwlock.rs b/src/libstd/sync/rwlock.rs index a4f8b1df6af..b6d6aa989c5 100644 --- a/src/libstd/sync/rwlock.rs +++ b/src/libstd/sync/rwlock.rs @@ -387,7 +387,7 @@ mod tests { let (tx, rx) = channel::<()>(); for _ in range(0, N) { let tx = tx.clone(); - spawn(proc() { + spawn(move|| { let mut rng = rand::task_rng(); for _ in range(0, M) { if rng.gen_weighted_bool(N) { @@ -409,7 +409,7 @@ mod tests { fn test_rw_arc_poison_wr() { let arc = Arc::new(RWLock::new(1i)); let arc2 = arc.clone(); - let _ = task::try(proc() { + let _ = task::try(move|| { let lock = arc2.write(); assert_eq!(*lock, 2); }); @@ -422,7 +422,7 @@ mod tests { fn test_rw_arc_poison_ww() { let arc = Arc::new(RWLock::new(1i)); let arc2 = arc.clone(); - let _ = task::try(proc() { + let _ = task::try(move|| { let lock = arc2.write(); assert_eq!(*lock, 2); }); @@ -434,7 +434,7 @@ mod tests { fn test_rw_arc_no_poison_rr() { let arc = Arc::new(RWLock::new(1i)); let arc2 = arc.clone(); - let _ = task::try(proc() { + let _ = task::try(move|| { let lock = arc2.read(); assert_eq!(*lock, 2); }); @@ -445,7 +445,7 @@ mod tests { fn test_rw_arc_no_poison_rw() { let arc = Arc::new(RWLock::new(1i)); let arc2 = arc.clone(); - let _ = task::try(proc() { + let _ = task::try(move|| { let lock = arc2.read(); assert_eq!(*lock, 2); }); @@ -459,7 +459,7 @@ mod tests { let arc2 = arc.clone(); let (tx, rx) = channel(); - task::spawn(proc() { + task::spawn(move|| { let mut lock = arc2.write(); for _ in range(0u, 10) { let tmp = *lock; @@ -474,7 +474,7 @@ mod tests { let mut children = Vec::new(); for _ in range(0u, 5) { let arc3 = arc.clone(); - children.push(task::try_future(proc() { + children.push(task::try_future(move|| { let lock = arc3.read(); assert!(*lock >= 0); })); @@ -495,7 +495,7 @@ mod tests { fn test_rw_arc_access_in_unwind() { let arc = Arc::new(RWLock::new(1i)); let arc2 = arc.clone(); - let _ = task::try::<()>(proc() { + let _ = task::try(move|| -> () { struct Unwinder { i: Arc<RWLock<int>>, } diff --git a/src/libstd/sync/semaphore.rs b/src/libstd/sync/semaphore.rs index 03fb84c38d4..574b0f22bee 100644 --- a/src/libstd/sync/semaphore.rs +++ b/src/libstd/sync/semaphore.rs @@ -127,7 +127,7 @@ mod tests { fn test_sem_as_mutex() { let s = Arc::new(Semaphore::new(1)); let s2 = s.clone(); - spawn(proc() { + spawn(move|| { let _g = s2.access(); }); let _g = s.access(); @@ -139,7 +139,7 @@ mod tests { let (tx, rx) = channel(); let s = Arc::new(Semaphore::new(0)); let s2 = s.clone(); - spawn(proc() { + spawn(move|| { s2.acquire(); tx.send(()); }); @@ -150,7 +150,7 @@ mod tests { let (tx, rx) = channel(); let s = Arc::new(Semaphore::new(0)); let s2 = s.clone(); - spawn(proc() { + spawn(move|| { s2.release(); let _ = rx.recv(); }); @@ -166,7 +166,7 @@ mod tests { let s2 = s.clone(); let (tx1, rx1) = channel(); let (tx2, rx2) = channel(); - spawn(proc() { + spawn(move|| { let _g = s2.access(); let _ = rx2.recv(); tx1.send(()); @@ -183,7 +183,7 @@ mod tests { let (tx, rx) = channel(); { let _g = s.access(); - spawn(proc() { + spawn(move|| { tx.send(()); drop(s2.access()); tx.send(()); diff --git a/src/libstd/sync/task_pool.rs b/src/libstd/sync/task_pool.rs index a684c6502ae..fa5b62a202b 100644 --- a/src/libstd/sync/task_pool.rs +++ b/src/libstd/sync/task_pool.rs @@ -12,17 +12,18 @@ use core::prelude::*; -use task::spawn; +use task::{spawn}; use comm::{channel, Sender, Receiver}; use sync::{Arc, Mutex}; +use thunk::Thunk; struct Sentinel<'a> { - jobs: &'a Arc<Mutex<Receiver<proc(): Send>>>, + jobs: &'a Arc<Mutex<Receiver<Thunk>>>, active: bool } impl<'a> Sentinel<'a> { - fn new(jobs: &Arc<Mutex<Receiver<proc(): Send>>>) -> Sentinel { + fn new(jobs: &Arc<Mutex<Receiver<Thunk>>>) -> Sentinel { Sentinel { jobs: jobs, active: true @@ -60,7 +61,7 @@ impl<'a> Drop for Sentinel<'a> { /// let (tx, rx) = channel(); /// for _ in range(0, 8u) { /// let tx = tx.clone(); -/// pool.execute(proc() { +/// pool.execute(move|| { /// tx.send(1u); /// }); /// } @@ -146,7 +147,7 @@ mod test { let (tx, rx) = channel(); for _ in range(0, TEST_TASKS) { let tx = tx.clone(); - pool.execute(proc() { + pool.execute(move|| { tx.send(1u); }); } @@ -168,14 +169,14 @@ mod test { // Panic all the existing tasks. for _ in range(0, TEST_TASKS) { - pool.execute(proc() { panic!() }); + pool.execute(move|| -> () { panic!() }); } // Ensure new tasks were spawned to compensate. let (tx, rx) = channel(); for _ in range(0, TEST_TASKS) { let tx = tx.clone(); - pool.execute(proc() { + pool.execute(move|| { tx.send(1u); }); } @@ -193,7 +194,7 @@ mod test { // Panic all the existing tasks in a bit. for _ in range(0, TEST_TASKS) { let waiter = waiter.clone(); - pool.execute(proc() { + pool.execute(move|| { waiter.wait(); panic!(); }); |
