tasyncrecursion.nim 514 B

1234567891011121314151617181920212223
  1. discard """
  2. file: "tasyncrecursion.nim"
  3. output: "50005000"
  4. """
  5. import asyncdispatch
  6. proc asyncRecursionCycle*(counter: int): Future[int] =
  7. var retFuture = newFuture[int]("asyncRecursionTest")
  8. retFuture.complete(counter + 1)
  9. return retFuture
  10. proc asyncRecursionTest*(): Future[int] {.async.} =
  11. var i = 0
  12. result = 0
  13. while i < 10_000:
  14. inc(result, await asyncRecursionCycle(i))
  15. inc(i)
  16. when isMainModule:
  17. setGlobalDispatcher(newDispatcher())
  18. var i = waitFor asyncRecursionTest()
  19. echo i