import ../taskpools block: # Async without result proc displayInt(x: int) = try: stdout.write(x) stdout.write(" - SUCCESS\n") except IOError: quit 1 # can't do anything productive proc main() = echo "\nSanity check 1: Printing 123456 654321 in parallel" var tp = Taskpool.new(numThreads = 4) tp.spawn displayInt(123456) tp.spawn displayInt(654321) tp.shutdown() main() block: # Async/Await var tp: Taskpool proc asyncFib(n: int): int {.gcsafe, raises: [].} = if n < 2: return n let x = tp.spawn asyncFib(n-1) let y = asyncFib(n-2) result = sync(x) + y proc main2() = echo "\nSanity check 2: fib(20)" tp = Taskpool.new() let f = asyncFib(20) tp.shutdown() doAssert f == 6765 main2()