mirror of
https://github.com/nim-lang/Nim.git
synced 2026-06-06 20:04:18 +00:00
stdlib: asyncdispatch: add proc supports varargs now.
This commit is contained in:
@@ -355,7 +355,7 @@ proc `or`*[T, Y](fut1: Future[T], fut2: Future[Y]): Future[void] =
|
||||
fut2.callback = cb
|
||||
return retFuture
|
||||
|
||||
proc all*[A](futs: openarray[Future[A]]): Future[seq[A]] =
|
||||
proc all*[T](futs: varargs[Future[T]]): Future[seq[T]] =
|
||||
## Returns a future which will complete once all futures in ``futs``
|
||||
## complete.
|
||||
##
|
||||
@@ -364,12 +364,12 @@ proc all*[A](futs: openarray[Future[A]]): Future[seq[A]] =
|
||||
|
||||
var
|
||||
retFuture = newFuture[seq[A]]("asyncdispatch.all")
|
||||
retValues = newSeq[A](len(futs))
|
||||
retValues = newSeq[T](len(futs))
|
||||
completedFutures = 0
|
||||
|
||||
for i, fut in futs:
|
||||
proc setCallback(i: int) =
|
||||
fut.callback = proc(f: Future[A]) =
|
||||
fut.callback = proc(f: Future[T]) =
|
||||
retValues[i] = f.read()
|
||||
inc(completedFutures)
|
||||
|
||||
@@ -380,9 +380,6 @@ proc all*[A](futs: openarray[Future[A]]): Future[seq[A]] =
|
||||
|
||||
return retFuture
|
||||
|
||||
proc all*[A](futs: varargs[Future[A]]): Future[seq[A]] =
|
||||
return all(@futs)
|
||||
|
||||
type
|
||||
PDispatcherBase = ref object of RootRef
|
||||
timers: HeapQueue[tuple[finishAt: float, fut: Future[void]]]
|
||||
|
||||
Reference in New Issue
Block a user