Hiatus ====== Hiatus is a concurrency debugging library for Rust. It allows you to sprinkle breakpoints in your programs so that blocks of code execute in the order you choose. If you suspect that a specific interleaving of blocks is buggy, you can use Hiatus to invoke that ordering and confirm the existence of the bug. [API Documentation](https://docs.rs/hiatus) ## Motivation Drunk on the promise of fearless concurrency you have adorned your program with type-safe talismans — `Arc`, `Mutex` and `RwLock` feel like home now. Your program executes rapidly on dozens of threads, without a care in the world for the data races that plagued the 20th century. You sleep easy in your bed knowing that a ragtag gang of millennial researchers have vetted the `unsafe` blocks upon which your fortune rests. And yet... something doesn't feel right. Your program's plethora of locks, interleaved with filesystem writes, has become disorderly. High-level invariants about the consistency of your different data structures become nigh impossible to maintain as the number of locks and threads climbs feverishly higher, higher. A user on Discord reports a catastrophic crash that no sane and loving language designer could ever allow to happen. It seems to relate to a very specific ordering of events in your program, one that you had never considered before. Before your dismay deepens, a quartet of levitating neo-soul musicians appear to you a dream, granting you the ability to see through walls~ ## Solution See the [examples](./examples) directory for examples of using Hiatus to control concurrent execution. ## License Apache 2.0