diff options
| author | joboet <jonasboettiger@icloud.com> | 2022-12-30 15:49:47 +0100 |
|---|---|---|
| committer | joboet <jonasboettiger@icloud.com> | 2022-12-30 15:49:47 +0100 |
| commit | 9abda03da69ee64625f2242cdaefa348bd0b48cd (patch) | |
| tree | a9e521cd6a0fbe80f4a88894100ce5076a4e6866 /library/std/src/sys_common | |
| parent | 3076f4ec30632a063d0737bef589e1c4859ad23c (diff) | |
| download | rust-9abda03da69ee64625f2242cdaefa348bd0b48cd.tar.gz rust-9abda03da69ee64625f2242cdaefa348bd0b48cd.zip | |
std: rename `Parker::new` to `Parker::new_in_place`, add safe `Parker::new` constructor for SGX
Diffstat (limited to 'library/std/src/sys_common')
4 files changed, 9 insertions, 5 deletions
diff --git a/library/std/src/sys_common/thread_parking/futex.rs b/library/std/src/sys_common/thread_parking/futex.rs index d9e2f39e345..588e7b27826 100644 --- a/library/std/src/sys_common/thread_parking/futex.rs +++ b/library/std/src/sys_common/thread_parking/futex.rs @@ -35,7 +35,7 @@ pub struct Parker { impl Parker { /// Construct the futex parker. The UNIX parker implementation /// requires this to happen in-place. - pub unsafe fn new(parker: *mut Parker) { + pub unsafe fn new_in_place(parker: *mut Parker) { parker.write(Self { state: AtomicU32::new(EMPTY) }); } diff --git a/library/std/src/sys_common/thread_parking/generic.rs b/library/std/src/sys_common/thread_parking/generic.rs index f3d8b34d3fd..3209bffe353 100644 --- a/library/std/src/sys_common/thread_parking/generic.rs +++ b/library/std/src/sys_common/thread_parking/generic.rs @@ -19,7 +19,7 @@ pub struct Parker { impl Parker { /// Construct the generic parker. The UNIX parker implementation /// requires this to happen in-place. - pub unsafe fn new(parker: *mut Parker) { + pub unsafe fn new_in_place(parker: *mut Parker) { parker.write(Parker { state: AtomicUsize::new(EMPTY), lock: Mutex::new(()), diff --git a/library/std/src/sys_common/thread_parking/id.rs b/library/std/src/sys_common/thread_parking/id.rs index 32e2195b808..e98169597c3 100644 --- a/library/std/src/sys_common/thread_parking/id.rs +++ b/library/std/src/sys_common/thread_parking/id.rs @@ -26,9 +26,13 @@ const EMPTY: i8 = 0; const NOTIFIED: i8 = 1; impl Parker { + pub fn new() -> Parker { + Parker { state: AtomicI8::new(EMPTY), tid: UnsafeCell::new(None) } + } + /// Create a new thread parker. UNIX requires this to happen in-place. - pub unsafe fn new(parker: *mut Parker) { - parker.write(Parker { state: AtomicI8::new(EMPTY), tid: UnsafeCell::new(None) }) + pub unsafe fn new_in_place(parker: *mut Parker) { + parker.write(Parker::new()) } /// # Safety diff --git a/library/std/src/sys_common/thread_parking/wait_flag.rs b/library/std/src/sys_common/thread_parking/wait_flag.rs index 6561c186655..d0f8899a94e 100644 --- a/library/std/src/sys_common/thread_parking/wait_flag.rs +++ b/library/std/src/sys_common/thread_parking/wait_flag.rs @@ -41,7 +41,7 @@ pub struct Parker { impl Parker { /// Construct a parker for the current thread. The UNIX parker /// implementation requires this to happen in-place. - pub unsafe fn new(parker: *mut Parker) { + pub unsafe fn new_in_place(parker: *mut Parker) { parker.write(Parker { state: AtomicI8::new(EMPTY), wait_flag: WaitFlag::new() }) } |
