about summary refs log tree commit diff
path: root/src/libstd/rt/task.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd/rt/task.rs')
-rw-r--r--src/libstd/rt/task.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/libstd/rt/task.rs b/src/libstd/rt/task.rs
index 16ae28743c5..b3c65ce4749 100644
--- a/src/libstd/rt/task.rs
+++ b/src/libstd/rt/task.rs
@@ -546,7 +546,6 @@ pub fn begin_unwind(msg: *c_char, file: *c_char, line: size_t) -> ! {
     use rt::in_green_task_context;
     use rt::task::Task;
     use rt::local::Local;
-    use rt::logging::Logger;
     use str::Str;
     use c_str::CString;
     use unstable::intrinsics;
@@ -573,16 +572,19 @@ pub fn begin_unwind(msg: *c_char, file: *c_char, line: size_t) -> ! {
         // have been failing due to a lack of memory in the first place...
         let task: *mut Task = Local::unsafe_borrow();
         let n = (*task).name.as_ref().map(|n| n.as_slice()).unwrap_or("<unnamed>");
+
+        // XXX: this should no get forcibly printed to the console, this should
+        //      either be sent to the parent task (ideally), or get printed to
+        //      the task's logger. Right now the logger is actually a uvio
+        //      instance, which uses unkillable blocks internally for various
+        //      reasons. This will cause serious trouble if the task is failing
+        //      due to mismanagment of its own kill flag, so calling our own
+        //      logger in its current state is a bit of a problem.
         match file.as_str() {
             Some(file) => {
-                format_args!(|args| { (*task).logger.log(args) },
-                             "task '{}' failed at '{}', {}:{}",
-                             n, msg, file, line);
-            }
-            None => {
-                format_args!(|args| { (*task).logger.log(args) },
-                             "task '{}' failed at '{}'", n, msg);
+                rterrln!("task '{}' failed at '{}', {}:{}", n, msg, file, line);
             }
+            None => rterrln!("task '{}' failed at '{}'", n, msg),
         }
         if (*task).unwinder.unwinding {
             rtabort!("unwinding again");