diff --git a/src/apatheia/jobs.nim b/src/apatheia/jobs.nim index 8c5076a..9ff678d 100644 --- a/src/apatheia/jobs.nim +++ b/src/apatheia/jobs.nim @@ -94,13 +94,11 @@ when isMainModule: 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,)) + proc addNumValues(jobResult: JobResult[float], vals: openArray[float]): float = + os.sleep(100) + result = 0.0 + for x in vals: + result += x suite "async tests": @@ -110,7 +108,8 @@ when isMainModule: expandMacros: var jobs = newJobQueue[float](taskpool = tp) - let job = jobs.submit(addNums(1.0, 2.0,)) + let vals = @[1.0, 2.0] + let job = jobs.submit(addNumValues(vals)) let res = await job check res == 3.0 diff --git a/tests/tjobs.nim b/tests/tjobs.nim index 933686f..b85f495 100644 --- a/tests/tjobs.nim +++ b/tests/tjobs.nim @@ -17,6 +17,12 @@ proc addNums(jobResult: JobResult[float], a, b: float) = let res = addNumsRaw(a, b) discard jobResult.queue.send((jobResult.id, res,)) +proc addNumValues(jobResult: JobResult[float], vals: openArray[float]): float = + os.sleep(100) + result = 0.0 + for x in vals: + result += x + suite "async tests": var tp = Taskpool.new(num_threads = 2) # Default to the number of hardware threads. @@ -28,3 +34,8 @@ suite "async tests": check res == 3.0 + # asyncTest "test": + # var jobs = newJobQueue[float](taskpool = tp) + # let res = await jobs.submit(addNumValues([1.0, 2.0])) + # check res == 3.0 +