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 并发

Download history 110232/week @ 2024-05-04 117687/week @ 2024-05-11 111900/week @ 2024-05-18 110396/week @ 2024-05-25 119380/week @ 2024-06-01 109285/week @ 2024-06-08 117119/week @ 2024-06-15 105169/week @ 2024-06-22 103591/week @ 2024-06-29 106424/week @ 2024-07-06 108764/week @ 2024-07-13 114844/week @ 2024-07-20 115547/week @ 2024-07-27 108380/week @ 2024-08-03 109309/week @ 2024-08-10 91814/week @ 2024-08-17

444,997 每月下载量
用于 227 个crate(4个直接使用)

MIT/Apache

75KB
1.5K SLoC

以git的方式使用锁文件,自动清理是其最显著的功能。

  • 可写入的锁文件,可以原子性地提交以替换它们所锁定的资源
  • 只读标记,锁定资源而不打算覆盖它
  • 在释放或接收到信号时自动删除锁文件和中间目录

lib.rs:

Git风格的注册锁文件,以使更改资源原子化。

在这个模型中,读取总是原子的,可以直接执行,而写入则由这里实现的锁定机制提供支持。锁是原子获取的,然后写入,最后原子性地覆盖实际资源。

锁文件被包装在 gix-tempfile-句柄中,并添加以下功能

  • 锁文件的一致命名
  • 如果无法立即获取锁,则阻塞线程(带超时)或立即失败
  • 提交锁文件,以原子性地将它们放在原始锁定文件的位置

限制

  • 所有 gix-tempfile 的限制都适用。 这些限制的一个亮点是资源泄漏,这会导致它们被永久锁定,除非有用户干预。
  • 由于锁文件与实际资源分开,锁定只是一种约定,而不是强制执行。

依赖关系

~3–12MB
~186K SLoC