def wal.locked.sized

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

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/MemTable.bend as MemTable
import mylsm-lsm-store@0.6.0.1/src/coordinator/QueuePolicy.bend as QueuePolicy

770def wal.locked.sized(
771  lock: DbLock.Lock,
772  size: Nat,
773  +path: String,
774  within_limit: Bool,
775  records: List<&2, MemTable.Entry>
776) -> IO(TableValidation):
777  match within_limit:
778    case False{}:
779      IO.pure(TableValidation,
780        table.validation.records(lock, path, Fail{ResourceLimit{}}, records))
781    case True{}:
782      do IO<TableValidation>:
783        opened : Result<&1, &1, U32 & String, File> <-
784          File.open(path ++ "/WAL", "r")
785        wal.locked.opened(lock, QueuePolicy.nat.clone.pair(size), opened, path,
786          records)

Uses (20)

Used by (1)