std: remove a workaround for privacy limitations that isn't necessary anymore

This commit is contained in:
Sean Gillespie 2017-03-13 18:42:23 -07:00
parent fd182c4010
commit 1545f4e2a3
3 changed files with 4 additions and 14 deletions

View File

@ -34,7 +34,7 @@ fn lang_start(main: *const u8, argc: isize, argv: *const *const u8) -> isize {
use panic;
use sys;
use sys_common;
use sys_common::thread_info::{self, NewThread};
use sys_common::thread_info;
use thread::Thread;
sys::init();
@ -47,7 +47,7 @@ fn lang_start(main: *const u8, argc: isize, argv: *const *const u8) -> isize {
// created. Note that this isn't necessary in general for new threads,
// but we just do this to name the main thread and to give it correct
// info about the stack bounds.
let thread: Thread = NewThread::new(Some("main".to_owned()));
let thread = Thread::new(Some("main".to_owned()));
thread_info::set(main_guard, thread);
// Store our args if necessary in a squirreled away location

View File

@ -31,7 +31,7 @@ impl ThreadInfo {
if c.borrow().is_none() {
*c.borrow_mut() = Some(ThreadInfo {
stack_guard: None,
thread: NewThread::new(None),
thread: Thread::new(None),
})
}
Some(f(c.borrow_mut().as_mut().unwrap()))
@ -54,8 +54,3 @@ pub fn set(stack_guard: Option<usize>, thread: Thread) {
thread: thread,
}));
}
// a hack to get around privacy restrictions; implemented by `std::thread`
pub trait NewThread {
fn new(name: Option<String>) -> Self;
}

View File

@ -745,7 +745,7 @@ pub struct Thread {
impl Thread {
// Used only internally to construct a thread object without spawning
fn new(name: Option<String>) -> Thread {
pub(crate) fn new(name: Option<String>) -> Thread {
let cname = name.map(|n| {
CString::new(n).expect("thread name may not contain interior null bytes")
});
@ -858,11 +858,6 @@ impl fmt::Debug for Thread {
}
}
// a hack to get around privacy restrictions
impl thread_info::NewThread for Thread {
fn new(name: Option<String>) -> Thread { Thread::new(name) }
}
////////////////////////////////////////////////////////////////////////////////
// JoinHandle
////////////////////////////////////////////////////////////////////////////////