about summary refs log tree commit diff
path: root/library/std/src/sys/sync/mutex/sgx.rs
AgeCommit message (Collapse)AuthorLines
2024-10-28std: refactor `pthread`-based synchronizationjoboet-2/+2
The non-trivial code for `pthread_condvar` is duplicated across the thread parking and the `Mutex`/`Condvar` implementations. This PR moves that code into `sys::pal`, which now exposes a non-movable wrapper type for `pthread_mutex_t` and `pthread_condvar_t`.
2024-10-01std: replace `LazyBox` with `OnceBox`joboet-15/+13
This PR replaces the `LazyBox` wrapper used to allocate the pthread primitives with `OnceBox`, which has a more familiar API mirroring that of `OnceLock`. This cleans up the code in preparation for larger changes like #128184 (from which this PR was split) and allows some neat optimizations, like avoid an acquire-load of the allocation pointer in `Mutex::unlock`, where the initialization of the allocation must have already been observed. Additionally, I've gotten rid of the TEEOS `Condvar` code, it's just a duplicate of the pthread one anyway and I didn't want to repeat myself.
2024-09-22Reformat using the new identifier sorting from rustfmtMichael Goulet-1/+1
2024-03-12std: move `Once` implementations to `sys`joboet-0/+59