From 747d2a435965d111c1bff910901f6c201f0b9959 Mon Sep 17 00:00:00 2001 From: Jaremy Creechley Date: Wed, 14 Feb 2024 22:49:52 -0700 Subject: [PATCH] compile output --- src/apatheia/jobs.nim | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/apatheia/jobs.nim b/src/apatheia/jobs.nim index d4a1898..8c5076a 100644 --- a/src/apatheia/jobs.nim +++ b/src/apatheia/jobs.nim @@ -88,3 +88,29 @@ macro submitMacro(tp: untyped, jobs: untyped, exp: untyped): untyped = template submit*[T](jobs: JobQueue[T], exp: untyped): Future[T] = submitMacro(T, jobs, exp) +when isMainModule: + import os + import chronos/threadsync + import chronos/unittest2/asynctests + import std/macros + + proc addNumsRaw(a, b: float): float = + os.sleep(50) + return a + b + + proc addNums(jobResult: JobResult[float], a, b: float) = + let res = addNumsRaw(a, b) + discard jobResult.queue.send((jobResult.id, res,)) + + suite "async tests": + + var tp = Taskpool.new(num_threads = 2) # Default to the number of hardware threads. + + asyncTest "test": + expandMacros: + var jobs = newJobQueue[float](taskpool = tp) + + let job = jobs.submit(addNums(1.0, 2.0,)) + let res = await job + + check res == 3.0