about summary refs log tree commit diff
path: root/src/test/mir-opt/lower_array_len.array_len.SimplifyLocals.diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-06-26 19:46:59 +0200
committerGitHub <noreply@github.com>2022-06-26 19:46:59 +0200
commitc348beacea13b417f71f2b80534a9afb18a69c3e (patch)
tree2b0296643ddbfbef9b2034263354ed34179b7c14 /src/test/mir-opt/lower_array_len.array_len.SimplifyLocals.diff
parent788ddedb0d88e40db9cd62b6163d5a471813044b (diff)
parentcaff72361f9a3d9938032be703295ef7a0c0dd5d (diff)
downloadrust-c348beacea13b417f71f2b80534a9afb18a69c3e.tar.gz
rust-c348beacea13b417f71f2b80534a9afb18a69c3e.zip
Rollup merge of #97140 - joboet:solid_parker, r=m-ou-se
std: use an event-flag-based thread parker on SOLID

`Mutex` and `Condvar` are being replaced by more efficient implementations, which need thread parking themselves (see #93740). Therefore, the generic `Parker` needs to be replaced on all platforms where the new lock implementation will be used, which, after #96393, are SOLID, SGX and Hermit (more PRs coming soon).

SOLID, conforming to the [μITRON specification](http://www.ertl.jp/ITRON/SPEC/FILE/mitron-400e.pdf), has event flags, which are a thread parking primitive very similar to `Parker`. However, they do not make any atomic ordering guarantees (even though those can probably be assumed) and necessitate a system call even when the thread token is already available. Hence, this `Parker`, like the Windows parker, uses an extra atomic state variable.

I future-proofed the code by wrapping the event flag in a `WaitFlag` structure, as both SGX and Hermit can share the Parker implementation, they just have slightly different primitives (SGX uses signals and Hermit has a thread blocking API).

`````@kawadakk````` I assume you are the target maintainer? Could you test this for me?
Diffstat (limited to 'src/test/mir-opt/lower_array_len.array_len.SimplifyLocals.diff')
0 files changed, 0 insertions, 0 deletions