mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 11:42:33 +00:00
* remove duplicated slow test * smaller `convex hull` * smaller sleep * faster `trtree` * smaller sleep in `tfuturestream`
36 lines
702 B
Nim
36 lines
702 B
Nim
discard """
|
|
output: '''true'''
|
|
"""
|
|
|
|
# bug #7638
|
|
import threadpool, os, strformat
|
|
|
|
proc timer(d: int): int =
|
|
#echo fmt"sleeping {d}"
|
|
sleep(d)
|
|
#echo fmt"done {d}"
|
|
return d
|
|
|
|
var durations = [1000, 1500, 2000, 2500, 3000]
|
|
var tasks: seq[FlowVarBase] = @[]
|
|
var results: seq[int] = @[]
|
|
|
|
for i in 0 .. durations.high:
|
|
tasks.add spawn timer(durations[i])
|
|
|
|
var index = blockUntilAny(tasks)
|
|
while index != -1:
|
|
results.add ^cast[FlowVar[int]](tasks[index])
|
|
tasks.del(index)
|
|
#echo repr results
|
|
index = blockUntilAny(tasks)
|
|
|
|
doAssert results.len == 5
|
|
doAssert 1000 in results
|
|
doAssert 1500 in results
|
|
doAssert 2000 in results
|
|
doAssert 2500 in results
|
|
doAssert 3000 in results
|
|
sync()
|
|
echo "true"
|