1
Fork 0

Auto merge of #123550 - GnomedDev:remove-initial-arc, r=Noratrieb

Remove the `Arc` rt::init allocation for thread info

Removes an allocation pre-main by just not storing anything in std:🧵:Thread for the main thread.
- The thread name can just be a hard coded literal, as was done in #123433.
- Storing ThreadId and Parker in a static that is initialized once at startup. This uses SyncUnsafeCell and MaybeUninit as this is quite performance critical and we don't need synchronization or to store a tag value and possibly leave in a panic.
This commit is contained in:
bors 2024-10-24 13:35:50 +00:00
commit f61306d47b
5 changed files with 124 additions and 58 deletions

View file

@ -40,6 +40,7 @@
//! }
//!
//! fn main() {
//! drop(String::from("An allocation"));
//! assert!(unsafe { HIT });
//! }
//! ```