Files
Nim/tests/async/tasyncrecursion.nim
Michał Zieliński e86863e8f5 asyncdispatch: split asyncfutures into its own module
This slightly changes behaviour of callSoon - before loop is initialized, callSoon will call the function immediately.
2017-07-05 12:54:09 +02:00

23 lines
514 B
Nim

discard """
file: "tasyncrecursion.nim"
output: "50005000"
"""
import asyncdispatch
proc asyncRecursionCycle*(counter: int): Future[int] =
var retFuture = newFuture[int]("asyncRecursionTest")
retFuture.complete(counter + 1)
return retFuture
proc asyncRecursionTest*(): Future[int] {.async.} =
var i = 0
result = 0
while i < 10_000:
inc(result, await asyncRecursionCycle(i))
inc(i)
when isMainModule:
setGlobalDispatcher(newDispatcher())
var i = waitFor asyncRecursionTest()
echo i