19个版本 (11个主要版本)
14.0.0 | 2024年5月22日 |
---|---|
13.1.1 | 2024年3月14日 |
13.1.0 | 2024年2月6日 |
12.0.1 | 2023年12月30日 |
3.0.2 | 2023年2月17日 |
#45 in 并发
444,997 每月下载量
用于 227 个crate(4个直接使用)
75KB
1.5K SLoC
以git的方式使用锁文件,自动清理是其最显著的功能。
- 可写入的锁文件,可以原子性地提交以替换它们所锁定的资源
- 只读标记,锁定资源而不打算覆盖它
- 在释放或接收到信号时自动删除锁文件和中间目录
lib.rs
:
Git风格的注册锁文件,以使更改资源原子化。
在这个模型中,读取总是原子的,可以直接执行,而写入则由这里实现的锁定机制提供支持。锁是原子获取的,然后写入,最后原子性地覆盖实际资源。
锁文件被包装在 gix-tempfile
-句柄中,并添加以下功能
- 锁文件的一致命名
- 如果无法立即获取锁,则阻塞线程(带超时)或立即失败
- 提交锁文件,以原子性地将它们放在原始锁定文件的位置
限制
- 所有
gix-tempfile
的限制都适用。 这些限制的一个亮点是资源泄漏,这会导致它们被永久锁定,除非有用户干预。 - 由于锁文件与实际资源分开,锁定只是一种约定,而不是强制执行。
依赖关系
~3–12MB
~186K SLoC