From ceace3e7b6dcb584b5da6a678a295b751ff806bc Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 21 Feb 2024 22:04:43 -0700 Subject: [PATCH] segfault --- tests/exFailure.nim | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/exFailure.nim b/tests/exFailure.nim index 6d9ea66..54b16b4 100644 --- a/tests/exFailure.nim +++ b/tests/exFailure.nim @@ -11,24 +11,26 @@ import apatheia/jobs type DataObj = ref object - data: seq[char] + holder: OpenArrayHolder[char] -proc worker(data: OpenArrayHolder[char], queue: SignalQueue[int]) = +proc worker(data: ptr OpenArrayHolder[char], queue: SignalQueue[int]) = os.sleep(1_000) - echo "worker: ", data.toOpenArray() - discard queue.send(data.toOpenArray().len()) + echo "worker: ", data[].toOpenArray() + discard queue.send(data[].toOpenArray().len()) proc finalizer(obj: DataObj) = echo "FINALIZE!!" + obj.holder.data = nil proc runTest(tp: TaskPool, queue: SignalQueue[int]) {.async.} = ## init var obj: DataObj new(obj, finalizer) - obj.data = "hello world!".toSeq + let data = "hello world!".toSeq + obj.holder = data.toArrayHolder() echo "spawn worker" - tp.spawn worker(toArrayHolder(obj.data), queue) + tp.spawn worker(addr obj.holder, queue) let res = await wait(queue).wait(100.milliseconds)