File: texceptions.nim

package info (click to toggle)
nim 0.19.4-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 462,356 kB
  • sloc: sh: 11,089; ansic: 4,699; makefile: 706; python: 309; sql: 297; asm: 141; xml: 13
file content (23 lines) | stat: -rw-r--r-- 578 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import coro
var
  stackCheckValue = 1100220033
  numbers = newSeqOfCap[int](10)

proc testExceptions(id: int, sleep: float) =
  try:
    numbers.add(id)
    suspend(sleep)
    numbers.add(id)
    raise (ref ValueError)()
  except:
    numbers.add(id)
    suspend(sleep)
    numbers.add(id)
  suspend(sleep)
  numbers.add(id)

start(proc() = testExceptions(1, 0.01))
start(proc() = testExceptions(2, 0.011))
run()
doAssert(stackCheckValue == 1100220033, "Thread stack got corrupted")
doAssert(numbers == @[1, 2, 1, 2, 1, 2, 1, 2, 1, 2], "Coroutines executed in incorrect order")