def recovered

mylsm-lsm-store@0.6.0.1 · src/ByteDurableDb.bend:241

import mylsm-lsm-store@0.6.0.1/src/ByteDurableDb.bend as ByteDurableDb
import Base
import mylsm-lsm-store@0.6.0.1/src/ByteMemTable.bend as ByteMemTable
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
import mylsm-lsm-store@0.6.0.1/src/scan/VisibleStats.bend as VisibleStats

241# Maps WAL recovery errors into corruption or host failures.
242def recovered(
243  +path: String,
244  lock: DbLock.Lock,
245  base_stats: VisibleStats.Stats,
246  result: Result<&1, &1, U32 & String, ByteMemTable.Table>
247) -> IO(Result<&1, &1, Error, Handle>):
248  match result:
249    case Fail{(code, message)}:
250      do IO<Result<&1, &1, Error, Handle>>:
251        _released : Result<&1, &1, DurableError.Error, Unit> <-
252          DbLock.release(lock, "open_existing", path)
253        return Fail{recovery.error(code, message)}
254    case Done{table}:
255      IO.pure(Result<&1, &1, Error, Handle>,
256        Done{Handle{path, lock, table, Open{}, base_stats}})

Uses (18)

Used by (2)