summary refs log blame commit diff stats
path: root/tests/async/tasyncrecursion.nim
blob: 1aeebe9b45eff35a2c48161f154efa80f42923e9 (plain) (tree)


















                                                      
                                      

                                      
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