std: refactor the TLS implementation · model-checking/verify-rust-std@b40c54b (original) (raw)

49 files changed

lines changed

Original file line number Diff line number Diff line change
@@ -33,9 +33,6 @@ pub mod pipe;
33 33 pub mod process;
34 34 pub mod stdio;
35 35 pub mod thread;
36 -pub mod thread_local_dtor;
37 -#[path = "../unsupported/thread_local_key.rs"]
38 -pub mod thread_local_key;
39 36 pub mod time;
40 37
41 38 use crate::io::ErrorKind;
@@ -98,7 +95,6 @@ pub unsafe extern "C" fn runtime_entry(
98 95 argv: *const *const c_char,
99 96 env: *const *const c_char,
100 97 ) -> ! {
101 -use thread_local_dtor::run_dtors;
102 98 extern "C" {
103 99 fn main(argc: isize, argv: *const *const c_char) -> i32;
104 100 }
@@ -108,7 +104,7 @@ pub unsafe extern "C" fn runtime_entry(
108 104
109 105 let result = main(argc as isize, argv);
110 106
111 -run_dtors();
107 +crate::sys::thread_local::destructors::run();
112 108 hermit_abi::exit(result);
113 109 }
114 110
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
1 1 #![allow(dead_code)]
2 2
3 3 use super::hermit_abi;
4 -use super::thread_local_dtor::run_dtors;
5 4 use crate::ffi::CStr;
6 5 use crate::io;
7 6 use crate::mem;
@@ -50,7 +49,7 @@ impl Thread {
50 49 Box::from_raw(ptr::with_exposed_provenance::<Box<dyn FnOnce()>>(main).cast_mut())();
51 50
52 51 // run all destructors
53 -run_dtors();
52 +crate::sys::thread_local::destructors::run();
54 53 }
55 54 }
56 55 }
Original file line number Diff line number Diff line change
@@ -14,7 +14,6 @@ use crate::{
14 14 num::NonZero,
15 15 ptr::NonNull,
16 16 sync::atomic::{AtomicUsize, Ordering},
17 - sys::thread_local_dtor::run_dtors,
18 17 time::Duration,
19 18 };
20 19
@@ -116,7 +115,7 @@ impl Thread {
116 115
117 116 // Run TLS destructors now because they are not
118 117 // called automatically for terminated tasks.
119 -unsafe { run_dtors() };
118 +unsafe { crate::sys::thread_local::destructors::run() };
120 119
121 120 let old_lifecycle = inner
122 121 .lifecycle
Original file line number Diff line number Diff line change
@@ -26,7 +26,6 @@ pub mod pipe;
26 26 pub mod process;
27 27 pub mod stdio;
28 28 pub mod thread;
29 -pub mod thread_local_key;
30 29 pub mod thread_parking;
31 30 pub mod time;
32 31 pub mod waitqueue;
Original file line number Diff line number Diff line change
@@ -33,8 +33,6 @@ pub mod pipe;
33 33 pub mod process;
34 34 pub mod stdio;
35 35 pub use self::itron::thread;
36 -pub mod thread_local_dtor;
37 -pub mod thread_local_key;
38 36 pub use self::itron::thread_parking;
39 37 pub mod time;
40 38
Original file line number Diff line number Diff line change
@@ -27,9 +27,6 @@ pub mod process;
27 27 mod rand;
28 28 pub mod stdio;
29 29 pub mod thread;
30 -pub mod thread_local_dtor;
31 -#[path = "../unix/thread_local_key.rs"]
32 -pub mod thread_local_key;
33 30 #[allow(non_upper_case_globals)]
34 31 #[path = "../unix/time.rs"]
35 32 pub mod time;
Original file line number Diff line number Diff line change
@@ -28,8 +28,6 @@ pub mod pipe;
28 28 pub mod process;
29 29 pub mod stdio;
30 30 pub mod thread;
31 -#[path = "../unsupported/thread_local_key.rs"]
32 -pub mod thread_local_key;
33 31 pub mod time;
34 32
35 33 mod helpers;
Original file line number Diff line number Diff line change
@@ -31,8 +31,6 @@ pub mod rand;
31 31 pub mod stack_overflow;
32 32 pub mod stdio;
33 33 pub mod thread;
34 -pub mod thread_local_dtor;
35 -pub mod thread_local_key;
36 34 pub mod thread_parking;
37 35 pub mod time;
38 36
Original file line number Diff line number Diff line change
@@ -11,9 +11,6 @@ pub mod pipe;
11 11 pub mod process;
12 12 pub mod stdio;
13 13 pub mod thread;
14 -#[cfg(target_thread_local)]
15 -pub mod thread_local_dtor;
16 -pub mod thread_local_key;
17 14 pub mod time;
18 15
19 16 mod common;