Skip to content

Commit 753bc7d

Browse files
author
Vytautas Astrauskas
committed
Inline start_thread into its callers.
1 parent 64e5327 commit 753bc7d

File tree

6 files changed

+30
-26
lines changed

6 files changed

+30
-26
lines changed

src/libstd/sys/cloudabi/thread.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ use crate::io;
44
use crate::mem;
55
use crate::ptr;
66
use crate::sys::cloudabi::abi;
7+
use crate::sys::stack_overflow;
78
use crate::sys::time::checked_dur2intervals;
8-
use crate::sys_common::thread::*;
99
use crate::time::Duration;
1010

1111
pub const DEFAULT_MIN_STACK_SIZE: usize = 2 * 1024 * 1024;
@@ -49,7 +49,11 @@ impl Thread {
4949

5050
extern "C" fn thread_start(main: *mut libc::c_void) -> *mut libc::c_void {
5151
unsafe {
52-
start_thread(main as *mut u8);
52+
// Next, set up our stack overflow handler which may get triggered if we run
53+
// out of stack.
54+
let _handler = stack_overflow::Handler::new();
55+
// Finally, let's run some code.
56+
Box::from_raw(main as *mut Box<dyn FnOnce()>)();
5357
}
5458
ptr::null_mut()
5559
}

src/libstd/sys/hermit/thread.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@ use crate::fmt;
55
use crate::io;
66
use crate::mem;
77
use crate::sys::hermit::abi;
8+
use crate::sys::stack_overflow;
89
use crate::time::Duration;
910
use core::u32;
1011

11-
use crate::sys_common::thread::*;
12-
1312
pub type Tid = abi::Tid;
1413

1514
/// Priority of a task
@@ -70,7 +69,11 @@ impl Thread {
7069

7170
extern "C" fn thread_start(main: usize) {
7271
unsafe {
73-
start_thread(main as *mut u8);
72+
// Next, set up our stack overflow handler which may get triggered if we run
73+
// out of stack.
74+
let _handler = stack_overflow::Handler::new();
75+
// Finally, let's run some code.
76+
Box::from_raw(main as *mut Box<dyn FnOnce()>)();
7477
}
7578
}
7679
}

src/libstd/sys/unix/thread.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ use crate::ffi::CStr;
33
use crate::io;
44
use crate::mem;
55
use crate::ptr;
6-
use crate::sys::os;
6+
use crate::sys::{os, stack_overflow};
77
use crate::time::Duration;
88

9-
use crate::sys_common::thread::*;
10-
119
#[cfg(not(target_os = "l4re"))]
1210
pub const DEFAULT_MIN_STACK_SIZE: usize = 2 * 1024 * 1024;
1311
#[cfg(target_os = "l4re")]
@@ -84,7 +82,11 @@ impl Thread {
8482

8583
extern "C" fn thread_start(main: *mut libc::c_void) -> *mut libc::c_void {
8684
unsafe {
87-
start_thread(main as *mut u8);
85+
// Next, set up our stack overflow handler which may get triggered if we run
86+
// out of stack.
87+
let _handler = stack_overflow::Handler::new();
88+
// Finally, let's run some code.
89+
Box::from_raw(main as *mut Box<dyn FnOnce()>)();
8890
}
8991
ptr::null_mut()
9092
}

src/libstd/sys/vxworks/thread.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,9 @@ use crate::ffi::CStr;
33
use crate::io;
44
use crate::mem;
55
use crate::ptr;
6-
use crate::sys::os;
6+
use crate::sys::{os, stack_overflow};
77
use crate::time::Duration;
88

9-
use crate::sys_common::thread::*;
10-
119
pub const DEFAULT_MIN_STACK_SIZE: usize = 0x40000; // 256K
1210

1311
pub struct Thread {
@@ -72,7 +70,11 @@ impl Thread {
7270

7371
extern "C" fn thread_start(main: *mut libc::c_void) -> *mut libc::c_void {
7472
unsafe {
75-
start_thread(main as *mut u8);
73+
// Next, set up our stack overflow handler which may get triggered if we run
74+
// out of stack.
75+
let _handler = stack_overflow::Handler::new();
76+
// Finally, let's run some code.
77+
Box::from_raw(main as *mut Box<dyn FnOnce()>)();
7678
}
7779
ptr::null_mut()
7880
}

src/libstd/sys/windows/thread.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use crate::mem;
44
use crate::ptr;
55
use crate::sys::c;
66
use crate::sys::handle::Handle;
7-
use crate::sys_common::thread::*;
7+
use crate::sys::stack_overflow;
88
use crate::time::Duration;
99

1010
use libc::c_void;
@@ -50,7 +50,11 @@ impl Thread {
5050

5151
extern "system" fn thread_start(main: *mut c_void) -> c::DWORD {
5252
unsafe {
53-
start_thread(main as *mut u8);
53+
// Next, set up our stack overflow handler which may get triggered if we run
54+
// out of stack.
55+
let _handler = stack_overflow::Handler::new();
56+
// Finally, let's run some code.
57+
Box::from_raw(main as *mut Box<dyn FnOnce()>)();
5458
}
5559
0
5660
}

src/libstd/sys_common/thread.rs

-11
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,7 @@
11
use crate::env;
22
use crate::sync::atomic::{self, Ordering};
3-
use crate::sys::stack_overflow;
43
use crate::sys::thread as imp;
54

6-
#[allow(dead_code)]
7-
pub unsafe fn start_thread(main: *mut u8) {
8-
// Next, set up our stack overflow handler which may get triggered if we run
9-
// out of stack.
10-
let _handler = stack_overflow::Handler::new();
11-
12-
// Finally, let's run some code.
13-
Box::from_raw(main as *mut Box<dyn FnOnce()>)()
14-
}
15-
165
pub fn min_stack() -> usize {
176
static MIN: atomic::AtomicUsize = atomic::AtomicUsize::new(0);
187
match MIN.load(Ordering::SeqCst) {

0 commit comments

Comments
 (0)