about summary refs log tree commit diff
path: root/src/tools/miri/tests/pass-dep/concurrency
AgeCommit message (Collapse)AuthorLines
2025-06-30linux futex: fix for val > i32::MAXRalf Jung-0/+5
2025-04-29add -Zmiri-deterministic-concurrency flag and use it for concurrency testsRalf Jung-6/+6
2025-04-29Added random schedulinggeetanshjuneja-6/+6
2025-04-10Merge pull request #4209 from LorrensP-2158466/freebsd_futexRalf Jung-0/+260
Implement FreeBSD syscall _umtx_op for futex support
2025-04-10feature: implement WAIT & WAKE operations of FreeBSD _umtx_op syscall for ↵LorrensP-2158466-0/+260
Futex support
2025-04-04fix windows_join_multipleRalf Jung-2/+8
2025-03-27run a few more concurrency tests on aarch64-linux-androidRalf Jung-3/+3
2025-02-02shim Apple's futex primitivesjoboet-0/+276
This is necessary to unblock rust-lang/rust#122408. The documentation for these is available [here](https://developer.apple.com/documentation/os/os_sync_wait_on_address?language=objc). Because the futex wait operations (`os_sync_wait_on_address` et al.) return the number of remaining waiters after returning, this required some changes to the common futex infrastructure, which I've changed to take a callback instead of precalculating the return values.
2025-01-26make linux-futex test less flakyRalf Jung-3/+2
2024-11-10fix linux-futex test being accidentally disabledRalf Jung-3/+2
2024-11-10store futexes in per-allocation data rather than globallyRalf Jung-2/+5
2024-10-28Android: Added syscall supportYoh Deadfall-0/+1
2024-10-14ensure that a macOS os_unfair_lock that is moved while being held is not ↵Ralf Jung-2/+2
implicitly unlocked
2024-09-29let rustfmt format importsRalf Jung-4/+2
2024-09-21fmt (with a huge diff for some reason)Ralf Jung-2/+2
2024-09-20Auto merge of #124895 - obeis:static-mut-hidden-ref, r=compiler-errorsbors-0/+6
Disallow hidden references to mutable static Closes #123060 Tracking: - https://github.com/rust-lang/rust/issues/123758
2024-09-16Bump ui testOli Scherer-7/+7
2024-09-13Update tests for hidden references to mutable staticObei Sideg-0/+6
2024-09-15move two tests to a better locationRalf Jung-166/+0
2024-08-27Make Tree Borrows Provenance GC compact the treeJohannes Hostert-1/+3
Follow-up on #3833 and #3835. In these PRs, the TB GC was fixed to no longer cause a stack overflow. One test that motivated it was the test `fill::horizontal_line` in `tiny_skia`. But not causing stack overflows was not a large improvents, since it did not fix the fundamental issue: The tree was too large. The test now ran, but it required gigabytes of memory and hours of time, whereas it finishes within seconds in Stacked Borrows. The problem in that test was that it used [`slice::chunked`](https://doc.rust-lang.org/std/primitive.slice.html#method.chunks) to iterate a slice in chunks. That iterator is written to reborrow at each call to `next`, which creates a linear tree with a bunch of intermediary nodes, which also fragments the `RangeMap` for that allocation. The solution is to now compact the tree, so that these interior nodes are removed. Care is taken to not remove nodes that are protected, or that otherwise restrict their children.
2024-07-14implement the `os_unfair_lock` functions on macOSjoboet-0/+25
2024-06-15std: refactor the TLS implementationjoboet-3/+3
As discovered by Mara in #110897, our TLS implementation is a total mess. In the past months, I have simplified the actual macros and their expansions, but the majority of the complexity comes from the platform-specific support code needed to create keys and register destructors. In keeping with #117276, I have therefore moved all of the `thread_local_key`/`thread_local_dtor` modules to the `thread_local` module in `sys` and merged them into a new structure, so that future porters of `std` can simply mix-and-match the existing code instead of having to copy the same (bad) implementation everywhere. The new structure should become obvious when looking at `sys/thread_local/mod.rs`. Unfortunately, the documentation changes associated with the refactoring have made this PR rather large. That said, this contains no functional changes except for two small ones: * the key-based destructor fallback now, by virtue of sharing the implementation used by macOS and others, stores its list in a `#[thread_local]` static instead of in the key, eliminating one indirection layer and drastically simplifying its code. * I've switched over ZKVM (tier 3) to use the same implementation as WebAssembly, as the implementation was just a way worse version of that Please let me know if I can make this easier to review! I know these large PRs aren't optimal, but I couldn't think of any good intermediate steps. @rustbot label +A-thread-locals
2024-05-06organize libc tests into a proper folder, and run some of them on WindowsRalf Jung-3/+25
2024-03-09windows: remove support for slim rwlockRalf Jung-286/+0
Since https://github.com/rust-lang/rust/pull/121956 we don't need it any more, and we are generally short on Windows staff so reducing the amount of code we have to test and maintain sounds like a good idea. The InitOnce stuff is still used by `thread_local_key::StaticKey`.
2024-03-04linux-futex test: add commentRalf Jung-0/+1
2024-02-17add direct test of pthread_condRalf Jung-0/+0
2024-02-12comment tweaksRalf Jung-2/+2
2023-12-29undo some lockfile changes, add explicit types to testsDrMeepster-63/+45
2023-12-25have windows tests use windows-sysDrMeepster-0/+536
2023-10-24futex text: avoid spurious non-atomic readsRalf Jung-13/+13
2023-04-14Fix spellingJosh Soref-8/+8
* additional * addresses * aggregates * always * around * beginning * behaviours * borrows * called * canary * deallocated * determine * division * documentation * empty * endianness * ensures * existing * github * hygiene * individual * initialize * instantiate * library * location * miscellaneous * mitigates * needs * nonexistent * occurred * occurring * overridden * parameter * performable * previous * referential * requires * resolved * scenarios * semantics * spurious * structure * subtracting * suppress * synchronization * this * timestamp * to * transferring * unknown * variable * windows Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>
2022-10-28relative futex and condvar timeouts can work with isolationRalf Jung-0/+82
2022-09-21Add 'src/tools/miri/' from commit '75dd959a3a40eb5b4574f8d2e23aa6efbeb33573'Oli Scherer-0/+448
git-subtree-dir: src/tools/miri git-subtree-mainline: 3f3167fb59341ac3240ca1774f48e8c053219131 git-subtree-split: 75dd959a3a40eb5b4574f8d2e23aa6efbeb33573