lean4-htt/tests/lean/promise.lean
2022-09-05 08:52:46 -07:00

21 lines
408 B
Text

open IO
-- not in the run/ directory because then it would be run with -j0
#eval do
let promise ← Promise.new
promise.resolve 42
assert! promise.result.get = 42
#eval do
let ch ← Channel.new
let out ← IO.mkRef #[]
ch.send 0
let drainFinished ← ch.forAsync fun x => out.modify (·.push x)
ch.send 1
ch.close
ch.send 2
IO.wait drainFinished
assert! (← out.get) = #[0, 1]