diff options
| author | Brian Anderson <banderson@mozilla.com> | 2013-04-22 17:15:31 -0700 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2013-04-22 17:15:31 -0700 |
| commit | 42c0f88232847e97e6cf3578ef197d1942bba44d (patch) | |
| tree | 6167cb170f891dad4674e2c186f785d6a0160b5d /src/libcore/task | |
| parent | 5fbb0949a53a6ac51c6d9b187ef4c464e52ae536 (diff) | |
| download | rust-42c0f88232847e97e6cf3578ef197d1942bba44d.tar.gz rust-42c0f88232847e97e6cf3578ef197d1942bba44d.zip | |
core::rt: Add unwinding to newsched tasks
Diffstat (limited to 'src/libcore/task')
| -rw-r--r-- | src/libcore/task/mod.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/libcore/task/mod.rs b/src/libcore/task/mod.rs index a243bfba85c..e1f4805a692 100644 --- a/src/libcore/task/mod.rs +++ b/src/libcore/task/mod.rs @@ -558,8 +558,22 @@ pub fn yield() { pub fn failing() -> bool { //! True if the running task has failed - unsafe { - rt::rust_task_is_unwinding(rt::rust_get_task()) + use rt::{context, OldTaskContext}; + use rt::local_services::borrow_local_services; + + match context() { + OldTaskContext => { + unsafe { + rt::rust_task_is_unwinding(rt::rust_get_task()) + } + } + _ => { + let mut unwinding = false; + do borrow_local_services |local| { + unwinding = local.unwinder.unwinding; + } + return unwinding; + } } } |
