File tree 3 files changed +148
-221
lines changed
3 files changed +148
-221
lines changed Original file line number Diff line number Diff line change 8
8
// option. This file may not be copied, modified, or distributed
9
9
// except according to those terms.
10
10
11
- use core :: prelude :: * ;
11
+ use prelude :: v1 :: * ;
12
12
13
- use boxed:: Box ;
14
- use mem;
15
13
use usize;
16
14
use libc;
17
15
use thunk:: Thunk ;
18
16
use sys_common:: stack;
19
- use sys:: { thread , stack_overflow} ;
17
+ use sys:: stack_overflow;
20
18
21
19
// This is the starting point of rust os threads. The first thing we do
22
20
// is make sure that we don't trigger __morestack (also why this has a
23
21
// no_stack_check annotation), and then we extract the main function
24
22
// and invoke it.
25
23
#[ no_stack_check]
26
- pub fn start_thread ( main : * mut libc:: c_void ) -> thread :: rust_thread_return {
24
+ pub fn start_thread ( main : * mut libc:: c_void ) {
27
25
unsafe {
28
26
stack:: record_os_managed_stack_bounds ( 0 , usize:: MAX ) ;
29
- let handler = stack_overflow:: Handler :: new ( ) ;
30
- let f: Box < Thunk > = Box :: from_raw ( main as * mut Thunk ) ;
31
- f. invoke ( ( ) ) ;
32
- drop ( handler) ;
33
- mem:: transmute ( 0 as thread:: rust_thread_return )
27
+ let _handler = stack_overflow:: Handler :: new ( ) ;
28
+ Box :: from_raw ( main as * mut Thunk ) . invoke ( ( ) ) ;
34
29
}
35
30
}
You can’t perform that action at this time.
0 commit comments