Files
Nim/tests/threads/ttryrecv.nim
ringabout d73fff1ecc fixes flaky CI with channels and ORC (#20831)
fixes flasky CI with channels

channels doesn't seem to work well with arc/orc
2022-11-13 15:29:47 +08:00

37 lines
563 B
Nim

discard """
matrix: "--mm:refc"
outputsub: "channel is empty"
"""
# bug #1816
from random import rand
from os import sleep
type PComm = ptr Channel[int]
proc doAction(outC: PComm) {.thread.} =
for i in 0 ..< 5:
sleep(rand(50))
send(outC[], i)
var
thr: Thread[PComm]
chan: Channel[int]
open(chan)
createThread[PComm](thr, doAction, addr(chan))
while true:
let (flag, x) = tryRecv(chan)
if flag:
echo("received from chan: " & $x)
else:
echo "channel is empty"
break
echo "Finished listening"
joinThread(thr)
close(chan)