Auto merge of #126523 - joboet:the_great_big_tls_refactor, r=Mark-Sim… · rust-lang/rust@5a3e2a4

File tree

50 files changed

lines changed

  • src/tools/miri/tests/pass-dep/concurrency

50 files changed

lines changed

Original file line numberDiff line numberDiff line change

@@ -32,9 +32,6 @@ pub mod pipe;

3232

pub mod process;

3333

pub mod stdio;

3434

pub mod thread;

35-

pub mod thread_local_dtor;

36-

#[path = "../unsupported/thread_local_key.rs"]

37-

pub mod thread_local_key;

3835

pub mod time;

3936
4037

use crate::io::ErrorKind;

@@ -97,7 +94,6 @@ pub unsafe extern "C" fn runtime_entry(

9794

argv: *const *const c_char,

9895

env: *const *const c_char,

9996

) -> ! {

100-

use thread_local_dtor::run_dtors;

10197

extern "C" {

10298

fn main(argc: isize, argv: *const *const c_char) -> i32;

10399

}

@@ -107,7 +103,7 @@ pub unsafe extern "C" fn runtime_entry(

107103
108104

let result = main(argc as isize, argv);

109105
110-

run_dtors();

106+

crate::sys::thread_local::destructors::run();

111107

hermit_abi::exit(result);

112108

}

113109
Original file line numberDiff line numberDiff line change

@@ -1,7 +1,6 @@

11

#![allow(dead_code)]

22
33

use super::hermit_abi;

4-

use super::thread_local_dtor::run_dtors;

54

use crate::ffi::CStr;

65

use crate::io;

76

use crate::mem;

@@ -50,7 +49,7 @@ impl Thread {

5049

Box::from_raw(ptr::with_exposed_provenance::<Box<dyn FnOnce()>>(main).cast_mut())();

5150
5251

// run all destructors

53-

run_dtors();

52+

crate::sys::thread_local::destructors::run();

5453

}

5554

}

5655

}

Original file line numberDiff line numberDiff line change

@@ -15,7 +15,6 @@ use crate::{

1515

num::NonZero,

1616

ptr::NonNull,

1717

sync::atomic::{AtomicUsize, Ordering},

18-

sys::thread_local_dtor::run_dtors,

1918

time::Duration,

2019

};

2120

@@ -117,7 +116,7 @@ impl Thread {

117116
118117

// Run TLS destructors now because they are not

119118

// called automatically for terminated tasks.

120-

unsafe { run_dtors() };

119+

unsafe { crate::sys::thread_local::destructors::run() };

121120
122121

let old_lifecycle = inner

123122

.lifecycle

Original file line numberDiff line numberDiff line change

@@ -26,7 +26,6 @@ pub mod pipe;

2626

pub mod process;

2727

pub mod stdio;

2828

pub mod thread;

29-

pub mod thread_local_key;

3029

pub mod thread_parking;

3130

pub mod time;

3231

pub mod waitqueue;

Original file line numberDiff line numberDiff line change

@@ -33,8 +33,6 @@ pub mod pipe;

3333

pub mod process;

3434

pub mod stdio;

3535

pub use self::itron::thread;

36-

pub mod thread_local_dtor;

37-

pub mod thread_local_key;

3836

pub use self::itron::thread_parking;

3937

pub mod time;

4038
Original file line numberDiff line numberDiff line change

@@ -27,9 +27,6 @@ pub mod process;

2727

mod rand;

2828

pub mod stdio;

2929

pub mod thread;

30-

pub mod thread_local_dtor;

31-

#[path = "../unix/thread_local_key.rs"]

32-

pub mod thread_local_key;

3330

#[allow(non_upper_case_globals)]

3431

#[path = "../unix/time.rs"]

3532

pub mod time;