def held.run

cswap-bend-cli@0.1.0.0 · lock.bend:97

import cswap-bend-cli@0.1.0.0/lock.bend as Lock
import Base
import cswap-bend-cli@0.1.0.0/fs.bend as Fs

97def held.run(-A: Type, act: IO(Fs.Res(A)), m: Fs.Res(Maybe<&1, File>)) -> IO(Fs.Res(A)):
98  match m:
99    case Fail{e}:
100      IO.pure(Fs.Res(A), Fail{e})
101    case Done{None{}}:
102      IO.pure(Fs.Res(A), Fail{(11, "Failed to acquire lock - another instance may be running")})
103    case Done{Some{f}}:
104      IO.bind(Fs.Res(A), Fs.Res(A), act, r => done.close(A, r, f))

Uses (9)

Used by (1)