diff options
author | Eugene Kabanov <ka@hardcore.kiev.ua> | 2017-03-14 21:03:13 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2017-03-14 20:03:13 +0100 |
commit | ac2f1996a8cf5581339526aa60c4cdb74ef3cd0c (patch) | |
tree | 8e90c0cbd4ae364b4ff7158666ceb3364d48d199 /tests/async/tasyncrecursion.nim | |
parent | b1c494a1504921a21f5578782db72f274efadd95 (diff) | |
download | Nim-ac2f1996a8cf5581339526aa60c4cdb74ef3cd0c.tar.gz |
asyncdispatch.nim recursion test. (#5534)
Diffstat (limited to 'tests/async/tasyncrecursion.nim')
-rw-r--r-- | tests/async/tasyncrecursion.nim | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/async/tasyncrecursion.nim b/tests/async/tasyncrecursion.nim new file mode 100644 index 000000000..54482edab --- /dev/null +++ b/tests/async/tasyncrecursion.nim @@ -0,0 +1,21 @@ +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: + var i = waitFor asyncRecursionTest() + echo i |