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))