def open.existing.wait.canonical
mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:428
import mylsm-lsm-store@0.6.0.1/src/ByteDurableDb.bend as ByteDurableDb
import Base
import mylsm-lsm-store@0.6.0.1/src/DbLock.bend as DbLock
import mylsm-lsm-store@0.6.0.1/src/DurableError.bend as DurableError
428def open.existing.wait.canonical(
429 result: Result<&1, &1, U32 & String, String>,
430 +timeout_ms: U32,
431 +backoff_ms: U32
432) -> IO(Result<&1, &1, Error, Handle>):
433 match result:
434 case Fail{error}:
435 IO.pure(Result<&1, &1, Error, Handle>, Fail{io.error(error)})
436 case Done{+path}:
437 do IO<Result<&1, &1, Error, Handle>>:
438 acquired : Result<&1, &1, DurableError.Error, DbLock.Lock> <-
439 DbLock.acquire_wait(path, "open_existing", timeout_ms, backoff_ms)
440 open.locked(path, acquired)