def source.lock.present

mylsm-lsm-store@0.6.0.1 · src/transfer/MigrateIo.bend:908

import mylsm-lsm-store@0.6.0.1/src/transfer/MigrateIo.bend as MigrateIo
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

908def source.lock.present(
909  +path: String,
910  result: Result<&1, &1, U32 & String, Bool>
911) -> IO(Result<&1, &1, Error, SourceSnapshot>):
912  match result:
913    case Fail{(code, message)}:
914      IO.pure(Result<&1, &1, Error, SourceSnapshot>, Fail{HostError{code, message}})
915    case Done{False{}}:
916      IO.pure(Result<&1, &1, Error, SourceSnapshot>,
917        Fail{HostError{2, "database LOCK file is missing"}})
918    case Done{True{}}:
919      do IO<Result<&1, &1, Error, SourceSnapshot>>:
920        acquired : Result<&1, &1, DurableError.Error, DbLock.Lock> <-
921          DbLock.acquire(path, "migrate-verify")
922        source.locked.manifest(path, acquired)

Uses (15)

Used by (1)