diff --git a/tests/exFailure.nim b/tests/exFailure.nim index d889890..97f3c14 100644 --- a/tests/exFailure.nim +++ b/tests/exFailure.nim @@ -12,8 +12,8 @@ type DataObj = ref object data: seq[char] -proc worker(data: seq[char], queue: SignalQueue[int]) = - os.sleep(5000) +proc worker(data: OpenArrayHolder[char], queue: SignalQueue[int]) = + os.sleep(1_000) echo "worker: ", data discard queue.send(data.len()) @@ -22,14 +22,15 @@ proc finalizer(obj: DataObj) = proc runTest(tp: TaskPool, queue: SignalQueue[int]) {.async.} = ## init - var data = "hello world!".toSeq var obj: DataObj new(obj, finalizer) + obj.data = "hello world!".toSeq echo "spawn worker" - tp.spawn worker(data, queue) + tp.spawn worker(obj.data, queue) - let res = await wait(queue) + let res = + await wait(queue).wait(100.milliseconds) check res.get() == 12 suite "async tests": @@ -39,8 +40,13 @@ suite "async tests": asyncTest "test": - await runTest(tp, queue) - GC_fullCollect() + try: + await runTest(tp, queue) + except AsyncTimeoutError as err: + echo "Run GC" + GC_fullCollect() + os.sleep(2_000) + echo "Done"