packages/lock: 负超时应该永远等待,适配器将其视为不等待
作者: loks0n创建于 2026年9月16日更新于 2026年9月16日
标签bugproduct / storageproduct / databasesproduct / vcs
`Utopia\Lock\Lock::acquire()` 文档其协议如下: 0.0 表示不等待,负值表示永远等待。`File::acquire()` 返回 `$this->tryAcquire()`,对于每个 `$timeout <= 0.0`,因此负值的超时是一次非阻塞尝试。在竞争情况下,遵循文档协议的调用者会立即获得 `false`,或者从 `withLock()` 获得 `Contention` 异常,而不是等待。Redis `Distributed` 适配器和非协程 `Mutex` 和 `Semaphore` 路径具有相同的形状。
内容来源: appwrite/appwrite