Merge pull request #8840 from pigmej/fix_with_timeout

Handle fut.failed in asyncdispatch.WithTimeout
This commit is contained in:
Dominik Picheta
2018-09-03 21:34:52 +01:00
committed by GitHub

View File

@@ -1536,7 +1536,11 @@ proc withTimeout*[T](fut: Future[T], timeout: int): Future[bool] =
var timeoutFuture = sleepAsync(timeout)
fut.callback =
proc () =
if not retFuture.finished: retFuture.complete(true)
if not retFuture.finished:
if fut.failed:
retFuture.fail(fut.error)
else:
retFuture.complete(true)
timeoutFuture.callback =
proc () =
if not retFuture.finished: retFuture.complete(false)