Skip to content

Commit ae182b1

Browse files
committed
Auto merge of #123356 - joboet:set_current_size, r=<try>
Reduce code size of `thread::set_current` #123265 introduced a rather large binary size regression, because it added an `unwrap()` call on a `Result<(), Thread>`, which in turn pulled its rather heavy `Debug` implementation. This PR fixes this by readding the `rtassert!` that was removed.
2 parents e2cf2cb + b5ccebf commit ae182b1

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

library/std/src/thread/mod.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -684,9 +684,12 @@ thread_local! {
684684

685685
/// Sets the thread handle for the current thread.
686686
///
687-
/// Panics if the handle has been set already or when called from a TLS destructor.
687+
/// Aborts if the handle has been set already to reduce code size.
688688
pub(crate) fn set_current(thread: Thread) {
689-
CURRENT.with(|current| current.set(thread).unwrap());
689+
CURRENT.with(|current| {
690+
rtassert!(current.get().is_none());
691+
current.set(thread).unwrap();
692+
});
690693
}
691694

692695
/// Gets a handle to the thread that invokes it.

0 commit comments

Comments
 (0)