rust/src
bors baaa3b6829 Auto merge of #96393 - joboet:pthread_parker, r=thomcc
std: directly use pthread in UNIX parker implementation

`Mutex` and `Condvar` are being replaced by more efficient implementations, which need thread parking themselves (see #93740). Therefore we should use the `pthread` synchronization primitives directly. Also, we can avoid allocating the mutex and condition variable because the `Parker` struct is being placed in an `Arc` anyways.

This basically is just a copy of the current `Mutex` and `Condvar` code, which will however be removed (again, see #93740). An alternative implementation could be to use dedicated private `OsMutex` and `OsCondvar` types, but all the other platforms supported by std actually have their own thread parking primitives.

I used `Pin` to guarantee a stable address for the `Parker` struct, while the current implementation does not, rather using extra unsafe declaration. Since the thread struct is shared anyways, I assumed this would not add too much clutter while being clearer.
2022-04-28 21:58:08 +00:00
..
bootstrap Auto merge of #95170 - jyn514:ci-llvm, r=Mark-Simulacrum 2022-04-27 13:27:22 +00:00
ci Update LLVM used for building rustc in CI for x64 to LLVM 14.0.2 2022-04-28 16:04:15 +02:00
doc Update books 2022-04-20 07:04:50 -07:00
etc Fix --bless not working anymore in htmldocck 2022-04-17 12:42:27 +02:00
librustdoc rustc_ast: Harmonize delimiter naming with proc_macro::Delimiter 2022-04-28 10:04:29 +03:00
llvm-project@fc10370ef7 Update LLVM submodule 2022-04-28 16:04:15 +02:00
rustdoc-json-types rustdoc-json-types: implementors -> implementations 2022-03-14 00:05:11 +00:00
test Auto merge of #96393 - joboet:pthread_parker, r=thomcc 2022-04-28 21:58:08 +00:00
tools Rollup merge of #96433 - petrochenkov:delim, r=nnethercote 2022-04-28 20:13:02 +02:00
README.md
stage0.json bump stage0 to the latest beta 2022-04-05 22:24:32 +02:00
version bump version to 1.62.0 2022-04-04 09:21:03 +02:00

This directory contains the source code of the rust project, including:

  • The test suite
  • The bootstrapping build system
  • Various submodules for tools, like rustdoc, rls, etc.

For more information on how various parts of the compiler work, see the rustc dev guide.