Fallout from new thread API
This commit is contained in:
@@ -41,9 +41,6 @@ use option::Option;
|
||||
use option::Option::{Some, None};
|
||||
use ops::{Deref, DerefMut, FnOnce};
|
||||
use result::Result::{Ok, Err};
|
||||
use rt;
|
||||
use rt::local::Local;
|
||||
use rt::task::Task;
|
||||
use slice::SliceExt;
|
||||
use str::StrPrelude;
|
||||
use string::String;
|
||||
@@ -328,25 +325,17 @@ pub fn set_stderr(stderr: Box<Writer + Send>) -> Option<Box<Writer + Send>> {
|
||||
// // io1 aliases io2
|
||||
// })
|
||||
// })
|
||||
fn with_task_stdout<F>(f: F) where
|
||||
F: FnOnce(&mut Writer) -> IoResult<()>,
|
||||
{
|
||||
let result = if Local::exists(None::<Task>) {
|
||||
let mut my_stdout = LOCAL_STDOUT.with(|slot| {
|
||||
slot.borrow_mut().take()
|
||||
}).unwrap_or_else(|| {
|
||||
box stdout() as Box<Writer + Send>
|
||||
});
|
||||
let result = f(&mut *my_stdout);
|
||||
let mut var = Some(my_stdout);
|
||||
LOCAL_STDOUT.with(|slot| {
|
||||
*slot.borrow_mut() = var.take();
|
||||
});
|
||||
result
|
||||
} else {
|
||||
let mut io = rt::util::Stdout;
|
||||
f(&mut io as &mut Writer)
|
||||
};
|
||||
fn with_task_stdout(f: |&mut Writer| -> IoResult<()>) {
|
||||
let mut my_stdout = LOCAL_STDOUT.with(|slot| {
|
||||
slot.borrow_mut().take()
|
||||
}).unwrap_or_else(|| {
|
||||
box stdout() as Box<Writer + Send>
|
||||
});
|
||||
let result = f(&mut *my_stdout);
|
||||
let mut var = Some(my_stdout);
|
||||
LOCAL_STDOUT.with(|slot| {
|
||||
*slot.borrow_mut() = var.take();
|
||||
});
|
||||
match result {
|
||||
Ok(()) => {}
|
||||
Err(e) => panic!("failed printing to stdout: {}", e),
|
||||
|
||||
Reference in New Issue
Block a user