2 ms·
> In the case of threading, what you would need to do is essentially have a compiler/runtime that goes out of its way to order and time operation in a random/ad
by nyanpasu64 5y ago
> In the case of threading, what you would need to do is essentially have a compiler/runtime that goes out of its way to order and time operation in a random/adversarial manner.
> others that modify the compiler itself to replace the concurrency primitives with runtime functions, that can then execute them in a fuzzed order.
Loom[1] is somewhat of that. It's a testing system (not a runtime for a full app) which tests multiple permutations of program execution (all possible permutations I think, limited by test case complexity or an optional "maximum thread switch count"), as well as modeling atomic/weak memory effects to some degree.
[1]: https://github.com/tokio-rs/loom https://github.com/tokio-rs/loom