2 个版本
0.1.1 | 2020年10月14日 |
---|---|
0.1.0 | 2020年10月14日 |
#1099 in 并发
9KB
54 行
Hiatus
Hiatus 是一个 Rust 的并发调试库。它允许你在程序中设置断点,以便代码块按照你选择的顺序执行。如果你怀疑某个代码块的特定交织有错误,可以使用 Hiatus 来调用该顺序并确认错误的存在。
动机
你沉迷于无懈可击的并发承诺,在你的程序中装饰了类型安全的护身符 —— Arc
、Mutex
和 RwLock
现在感觉像是家一样。你的程序在数十个线程上快速执行,完全不考虑困扰20世纪的竞争条件。你安心地睡在床上,知道一群千禧年研究人员已经审查了你财富所依赖的 unsafe
块。然而...似乎有什么不对劲。你的程序中大量的锁,交织着文件系统写入,变得混乱不堪。随着锁和线程数量的急剧增加,关于你不同数据结构一致性的高级不变量几乎不可能保持。Discord 上的一个用户报告了一个灾难性的崩溃,任何理智和充满爱心的语言设计者都不可能允许这种情况发生。这似乎与你程序中非常特定的事件顺序有关,这是你以前从未考虑过的。在你沮丧加深之前,四位悬浮的灵魂乐手出现在你面前,如同梦境一般,赋予你透视墙壁的能力~
解决方案
请参阅 示例目录,了解如何使用 Hiatus 控制并发执行。
许可证
Apache 2.0
依赖项
~485–800KB
~13K SLoC