16个版本 (10个稳定版)
3.0.3 | 2023年2月17日 |
---|---|
3.0.1 | 2022年12月19日 |
3.0.0 | 2022年11月21日 |
2.2.0 | 2022年11月17日 |
0.1.0 | 2021年6月23日 |
#30 in #fail
1,133 每月下载次数
在 13 个crate中使用(4个直接使用)
61KB
1K SLoC
以git的方式使用锁文件,自动清理是其中最显著的功能。
- 可写入的锁文件,可以原子性地替换它们所锁定的资源
- 只读标记,用于锁定资源而不打算覆盖它
- 在释放或接收到信号时自动删除锁文件和中间目录
lib.rs
:
以git风格注册的锁文件,以便原子性地更改资源。
在这个模型中,读取总是原子的,可以直接执行,而写入则通过这里实现的锁定机制来简化。
锁文件主要是 git-tempfile
,它具有自动清理功能以及以下特性
- 锁文件名称的一致性
- 如果无法立即获得锁,则阻塞线程(带有超时)或立即失败
- 将锁文件提交到原子地放置在原始锁定文件的位置
限制
- 由于锁文件与实际资源分开,锁定仅是一种约定,而不是强制执行。
- git-tempfile的限制适用。
依赖项
~3–11MB
~128K SLoC