diff options
Diffstat (limited to 'tests/parallel/twaitany.nim')
-rw-r--r-- | tests/parallel/twaitany.nim | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/tests/parallel/twaitany.nim b/tests/parallel/twaitany.nim index 69136a3b6..d57c5f40f 100644 --- a/tests/parallel/twaitany.nim +++ b/tests/parallel/twaitany.nim @@ -1,9 +1,10 @@ discard """ + matrix: "--mm:refc" output: '''true''' """ # bug #7638 -import threadpool, os, strformat +import threadpool, os proc timer(d: int): int = #echo fmt"sleeping {d}" @@ -11,25 +12,23 @@ proc timer(d: int): int = #echo fmt"done {d}" return d -var durations = [1000, 2000, 3000, 4000, 5000] +var durations = [1000, 1500, 2000] var tasks: seq[FlowVarBase] = @[] var results: seq[int] = @[] for i in 0 .. durations.high: tasks.add spawn timer(durations[i]) -var index = awaitAny(tasks) +var index = blockUntilAny(tasks) while index != -1: results.add ^cast[FlowVar[int]](tasks[index]) tasks.del(index) #echo repr results - index = awaitAny(tasks) + index = blockUntilAny(tasks) -doAssert results.len == 5 +doAssert results.len == 3 doAssert 1000 in results +doAssert 1500 in results doAssert 2000 in results -doAssert 3000 in results -doAssert 4000 in results -doAssert 5000 in results sync() echo "true" |