def take
import cswap-bend-cli@0.1.0.0/dirlock.bend as Dirlockimport Base
import cswap-bend-cli@0.1.0.0/fs.bend as Fs
import cswap-bend-cli@0.1.0.0/act.bend as Act
import cswap-bend-cli@0.1.0.0/fs/write.bend as FsW
87# Take the lock at `dir` (its parent is created), waiting up to `timeout_ms`.
88def take(+dir: String, +timeout_ms: U32, +staleness: U32) -> Act.of(Unit):
89 do ActM<Unit>:
90 FsW.mkdir_p(Fs.dirname(dir))
91 first : Bool <- take_once(dir)
92 wait(tries(timeout_ms), dir, staleness, first)