diff options
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/rt/kill.rs | 10 | ||||
| -rw-r--r-- | src/libstd/select.rs | 4 | ||||
| -rw-r--r-- | src/libstd/task/mod.rs | 30 | ||||
| -rw-r--r-- | src/libstd/unstable/sync.rs | 20 |
4 files changed, 32 insertions, 32 deletions
diff --git a/src/libstd/rt/kill.rs b/src/libstd/rt/kill.rs index 83bf34941dc..1608d8cbc2c 100644 --- a/src/libstd/rt/kill.rs +++ b/src/libstd/rt/kill.rs @@ -141,7 +141,7 @@ pub struct Death { on_exit: Option<~fn(bool)>, // nesting level counter for task::unkillable calls (0 == killable). unkillable: int, - // nesting level counter for unstable::atomically calls (0 == can yield). + // nesting level counter for unstable::atomically calls (0 == can deschedule). wont_sleep: int, // A "spare" handle to the kill flag inside the kill handle. Used during // blocking/waking as an optimization to avoid two xadds on the refcount. @@ -572,16 +572,16 @@ impl Death { } /// Enter a possibly-nested "atomic" section of code. Just for assertions. - /// All calls must be paired with a subsequent call to allow_yield. + /// All calls must be paired with a subsequent call to allow_deschedule. #[inline] - pub fn inhibit_yield(&mut self) { + pub fn inhibit_deschedule(&mut self) { self.wont_sleep += 1; } /// Exit a possibly-nested "atomic" section of code. Just for assertions. - /// All calls must be paired with a preceding call to inhibit_yield. + /// All calls must be paired with a preceding call to inhibit_deschedule. #[inline] - pub fn allow_yield(&mut self) { + pub fn allow_deschedule(&mut self) { rtassert!(self.wont_sleep != 0); self.wont_sleep -= 1; } diff --git a/src/libstd/select.rs b/src/libstd/select.rs index a92339e2562..6a81be3dc8f 100644 --- a/src/libstd/select.rs +++ b/src/libstd/select.rs @@ -250,7 +250,7 @@ mod test { let (c2, p3, c4) = x.take(); p3.recv(); // handshake parent c4.send(()); // normal receive - task::yield(); + task::deschedule(); c2.send(()); // select receive } @@ -294,7 +294,7 @@ mod test { if send_on_chans.contains(&i) { let c = Cell::new(c); do spawntask_random { - task::yield(); + task::deschedule(); c.take().send(()); } } diff --git a/src/libstd/task/mod.rs b/src/libstd/task/mod.rs index c38e6f23313..ab1d831f089 100644 --- a/src/libstd/task/mod.rs +++ b/src/libstd/task/mod.rs @@ -537,7 +537,7 @@ pub fn with_task_name<U>(blk: &fn(Option<&str>) -> U) -> U { } } -pub fn yield() { +pub fn deschedule() { //! Yield control to the task scheduler use rt::local::Local; @@ -568,10 +568,10 @@ pub fn failing() -> bool { * * ~~~ * do task::unkillable { - * // detach / yield / destroy must all be called together + * // detach / deschedule / destroy must all be called together * rustrt::rust_port_detach(po); * // This must not result in the current task being killed - * task::yield(); + * task::deschedule(); * rustrt::rust_port_destroy(po); * } * ~~~ @@ -689,7 +689,7 @@ fn test_spawn_unlinked_unsup_no_fail_down() { // grandchild sends on a port let ch = ch.clone(); do spawn_unlinked { // Give middle task a chance to fail-but-not-kill-us. - do 16.times { task::yield(); } + do 16.times { task::deschedule(); } ch.send(()); // If killed first, grandparent hangs. } fail!(); // Shouldn't kill either (grand)parent or (grand)child. @@ -712,7 +712,7 @@ fn test_spawn_unlinked_sup_no_fail_up() { // child unlinked fails do run_in_newsched_task { do spawn_supervised { fail!(); } // Give child a chance to fail-but-not-kill-us. - do 16.times { task::yield(); } + do 16.times { task::deschedule(); } } } #[ignore(reason = "linked failure")] @@ -821,7 +821,7 @@ fn test_spawn_failure_propagate_grandchild() { do spawn_supervised { do spawn_supervised { block_forever(); } } - do 16.times { task::yield(); } + do 16.times { task::deschedule(); } fail!(); }; assert!(result.is_err()); @@ -838,7 +838,7 @@ fn test_spawn_failure_propagate_secondborn() { do spawn_supervised { do spawn { block_forever(); } // linked } - do 16.times { task::yield(); } + do 16.times { task::deschedule(); } fail!(); }; assert!(result.is_err()); @@ -855,7 +855,7 @@ fn test_spawn_failure_propagate_nephew_or_niece() { do spawn { // linked do spawn_supervised { block_forever(); } } - do 16.times { task::yield(); } + do 16.times { task::deschedule(); } fail!(); }; assert!(result.is_err()); @@ -872,7 +872,7 @@ fn test_spawn_linked_sup_propagate_sibling() { do spawn { // linked do spawn { block_forever(); } // linked } - do 16.times { task::yield(); } + do 16.times { task::deschedule(); } fail!(); }; assert!(result.is_err()); @@ -1169,12 +1169,12 @@ fn test_unkillable() { // We want to do this after failing do spawn_unlinked { - do 10.times { yield() } + do 10.times { deschedule() } ch.send(()); } do spawn { - yield(); + deschedule(); // We want to fail after the unkillable task // blocks on recv fail!(); @@ -1205,12 +1205,12 @@ fn test_unkillable_nested() { // We want to do this after failing do spawn_unlinked || { - do 10.times { yield() } + do 10.times { deschedule() } ch.send(()); } do spawn { - yield(); + deschedule(); // We want to fail after the unkillable task // blocks on recv fail!(); @@ -1277,7 +1277,7 @@ fn test_spawn_watched() { t.unlinked(); t.watched(); do t.spawn { - task::yield(); + task::deschedule(); fail!(); } } @@ -1313,7 +1313,7 @@ fn test_indestructible() { t.unwatched(); do t.spawn { p3.recv(); - task::yield(); + task::deschedule(); fail!(); } c3.send(()); diff --git a/src/libstd/unstable/sync.rs b/src/libstd/unstable/sync.rs index adbf9fc7578..c6b860eb139 100644 --- a/src/libstd/unstable/sync.rs +++ b/src/libstd/unstable/sync.rs @@ -272,9 +272,9 @@ impl<T> Drop for UnsafeAtomicRcBox<T>{ /** * Enables a runtime assertion that no operation in the argument closure shall - * use scheduler operations (yield, recv, spawn, etc). This is for use with + * use scheduler operations (deschedule, recv, spawn, etc). This is for use with * pthread mutexes, which may block the entire scheduler thread, rather than - * just one task, and is hence prone to deadlocks if mixed with yielding. + * just one task, and is hence prone to deadlocks if mixed with descheduling. * * NOTE: THIS DOES NOT PROVIDE LOCKING, or any sort of critical-section * synchronization whatsoever. It only makes sense to use for CPU-local issues. @@ -288,10 +288,10 @@ pub unsafe fn atomically<U>(f: &fn() -> U) -> U { if in_green_task_context() { let t = Local::unsafe_borrow::<Task>(); do (|| { - (*t).death.inhibit_yield(); + (*t).death.inhibit_deschedule(); f() }).finally { - (*t).death.allow_yield(); + (*t).death.allow_deschedule(); } } else { f() @@ -349,7 +349,7 @@ struct ExData<T> { * This uses a pthread mutex, not one that's aware of the userspace scheduler. * The user of an Exclusive must be careful not to invoke any functions that may * reschedule the task while holding the lock, or deadlock may result. If you - * need to block or yield while accessing shared state, use extra::sync::RWArc. + * need to block or deschedule while accessing shared state, use extra::sync::RWArc. */ pub struct Exclusive<T> { x: UnsafeAtomicRcBox<ExData<T>> @@ -377,7 +377,7 @@ impl<T:Send> Exclusive<T> { // Exactly like std::arc::MutexArc,access(), but with the LittleLock // instead of a proper mutex. Same reason for being unsafe. // - // Currently, scheduling operations (i.e., yielding, receiving on a pipe, + // Currently, scheduling operations (i.e., descheduling, receiving on a pipe, // accessing the provided condition variable) are prohibited while inside // the Exclusive. Supporting that is a work in progress. #[inline] @@ -431,7 +431,7 @@ mod tests { fn test_atomically() { // NB. The whole runtime will abort on an 'atomic-sleep' violation, // so we can't really test for the converse behaviour. - unsafe { do atomically { } } task::yield(); // oughtn't fail + unsafe { do atomically { } } task::deschedule(); // oughtn't fail } #[test] @@ -545,7 +545,7 @@ mod tests { c.send(()); } p.recv(); - task::yield(); // Try to make the unwrapper get blocked first. + task::deschedule(); // Try to make the unwrapper get blocked first. let left_x = x.try_unwrap(); assert!(left_x.is_left()); util::ignore(left_x); @@ -566,7 +566,7 @@ mod tests { do task::spawn { let x2 = x2.take(); unsafe { do x2.with |_hello| { } } - task::yield(); + task::deschedule(); } assert!(x.unwrap() == ~~"hello"); @@ -612,7 +612,7 @@ mod tests { let x = Exclusive::new(~~"hello"); let x2 = x.clone(); do task::spawn { - do 10.times { task::yield(); } // try to let the unwrapper go + do 10.times { task::deschedule(); } // try to let the unwrapper go fail!(); // punt it awake from its deadlock } let _z = x.unwrap(); |
