def acquire_wait.valid
mylsm-lsm-store@0.6.0.1 · src/DbLock.bend:356
import mylsm-lsm-store@0.6.0.1/src/DbLock.bend as DbLock
import Base
import mylsm-lsm-store@0.6.0.1/src/DurableError.bend as DurableError
356
357def acquire_wait.valid(
358 valid: Bool,
359 +path: String,
360 operation: String,
361 +timeout_ms: U32,
362 +backoff_ms: U32
363) -> IO(Result<&1, &1, DurableError.Error, Lock>):
364 match valid:
365 case False{}:
366 IO.pure(Result<&1, &1, DurableError.Error, Lock>,
367 Fail{DurableError.classify_open(DurableError.InvalidInput{}, operation, path)})
368 case True{}:
369 do IO<Result<&1, &1, DurableError.Error, Lock>>:
370 opened : Result<&1, &1, U32 & String, File> <- File.open(lock_path(path), "a")
371 acquire_wait.opened(opened, operation, path, timeout_ms, backoff_ms)