From ac066c5db0d04ebc40180ba6e10bcde7a305198c Mon Sep 17 00:00:00 2001 From: Jedrzej Nowak Date: Sun, 2 Sep 2018 01:49:03 +0200 Subject: [PATCH] Handle fut.failed in asyncdispatch.WithTimeout Fixes: #8839 --- lib/pure/asyncdispatch.nim | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/pure/asyncdispatch.nim b/lib/pure/asyncdispatch.nim index 093bf58af5..820f347035 100644 --- a/lib/pure/asyncdispatch.nim +++ b/lib/pure/asyncdispatch.nim @@ -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)