Nim/tests/parallel/tptr_to_ref.nim
2015-06-06 11:59:35 +02:00

26 lines
519 B
Nim

# bug #2854
import locks, threadpool, osproc
const MAX_WORKERS = 10
type
Killer = object
lock: Lock
bailed {.guard: lock.}: bool
processes {.guard: lock.}: array[0..MAX_WORKERS-1, foreign ptr Process]
template hold(lock: Lock, body: stmt) =
lock.acquire
defer: lock.release
{.locks: [lock].}:
body
proc initKiller*(): Killer =
initLock(result.lock)
result.lock.hold:
result.bailed = false
for i, _ in result.processes:
result.processes[i] = nil
var killer = initKiller()