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# Opens and waits only after the pure option validation succeeds.
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)

Uses (16)

Used by (1)