mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-03 03:32:32 +00:00
* testament: error instead of silently ignore invalid targets * s/target/targets/ * fix test; refs #16344 * address comments * Update testament/specs.nim Co-authored-by: Andreas Rumpf <rumpf_a@web.de>
32 lines
735 B
Nim
32 lines
735 B
Nim
discard """
|
|
targets: "c"
|
|
disabled: true
|
|
"""
|
|
|
|
# Timers are always flakey on the testing servers.
|
|
|
|
import coro
|
|
include system/timers
|
|
|
|
var
|
|
stackCheckValue = 1100220033
|
|
numbers = newSeqOfCap[int](10)
|
|
|
|
iterator theIterator(id: int, sleep: float): int =
|
|
for i in 0..<5:
|
|
yield 10 * id + i
|
|
suspend(sleep)
|
|
|
|
proc theCoroutine(id: int, sleep: float32) =
|
|
for n in theIterator(id, sleep):
|
|
numbers.add(n)
|
|
|
|
var start = getTicks()
|
|
start(proc() = theCoroutine(1, 0.01))
|
|
start(proc() = theCoroutine(2, 0.011))
|
|
run()
|
|
|
|
var executionTime = getTicks() - start
|
|
doAssert(stackCheckValue == 1100220033, "Thread stack got corrupted")
|
|
doAssert(numbers == @[10, 20, 11, 21, 12, 22, 13, 23, 14, 24], "Coroutines executed in incorrect order")
|