Handle fut.failed in asyncdispatch.WithTimeout

Fixes: #8839
This commit is contained in:
Jedrzej Nowak
2018-09-02 01:49:03 +02:00
parent d06da9ccf0
commit ac066c5db0

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)