Stdlib: asyncdispatch: all proc: Fix incorect counter value issue.

This commit is contained in:
Konstantin Molchanov 2016-05-31 14:56:45 +04:00
commit 5a007a84fc

View file

@ -368,12 +368,15 @@ proc all*[A](futs: openarray[Future[A]]): Future[seq[A]] =
completedFutures = 0 completedFutures = 0
for i, fut in futs: for i, fut in futs:
fut.callback = proc(f: Future[A]) = proc setCallback(i: int) =
retValues[i] = f.read() fut.callback = proc(f: Future[A]) =
inc(completedFutures) retValues[i] = f.read()
inc(completedFutures)
if completedFutures == len(futs): if completedFutures == len(retValues):
retFuture.complete(retValues) retFuture.complete(retValues)
setCallback(i)
return retFuture return retFuture