summary refs log tree commit diff
path: root/library/std/src/thread/mod.rs
diff options
context:
space:
mode:
authorPavel Grigorenko <GrigorenkoPV@ya.ru>2024-07-14 22:17:28 +0300
committerPavel Grigorenko <GrigorenkoPV@ya.ru>2024-07-15 22:01:09 +0300
commitf6fe7e49a2bc2ad14513aa609b67e188470309f6 (patch)
tree42b16c96836b2cd4f2291396065977056802bcd2 /library/std/src/thread/mod.rs
parent594702ebb575e492e2b55cb6fcb02d612e6a84d5 (diff)
downloadrust-f6fe7e49a2bc2ad14513aa609b67e188470309f6.tar.gz
rust-f6fe7e49a2bc2ad14513aa609b67e188470309f6.zip
lib: replace some `mem::forget`'s with `ManuallyDrop`
Diffstat (limited to 'library/std/src/thread/mod.rs')
-rw-r--r--library/std/src/thread/mod.rs9
1 files changed, 4 insertions, 5 deletions
diff --git a/library/std/src/thread/mod.rs b/library/std/src/thread/mod.rs
index c8ee365392f..73bf5623708 100644
--- a/library/std/src/thread/mod.rs
+++ b/library/std/src/thread/mod.rs
@@ -165,7 +165,7 @@ use crate::ffi::{CStr, CString};
 use crate::fmt;
 use crate::io;
 use crate::marker::PhantomData;
-use crate::mem::{self, forget};
+use crate::mem::{self, forget, ManuallyDrop};
 use crate::num::NonZero;
 use crate::panic;
 use crate::panicking;
@@ -514,11 +514,10 @@ impl Builder {
                 MaybeDangling(mem::MaybeUninit::new(x))
             }
             fn into_inner(self) -> T {
-                // SAFETY: we are always initialized.
-                let ret = unsafe { self.0.assume_init_read() };
                 // Make sure we don't drop.
-                mem::forget(self);
-                ret
+                let this = ManuallyDrop::new(self);
+                // SAFETY: we are always initialized.
+                unsafe { this.0.assume_init_read() }
             }
         }
         impl<T> Drop for MaybeDangling<T> {