summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorJedrzej Nowak <pigmej@gmail.com>2018-09-02 01:49:03 +0200
committerJedrzej Nowak <pigmej@gmail.com>2018-09-02 01:49:03 +0200
commitac066c5db0d04ebc40180ba6e10bcde7a305198c (patch)
treeabd4936412a9be4a4407b1b270df8d1c570267e8 /lib
parentd06da9ccf01d41d06849f890e2821b8e791535ac (diff)
downloadNim-ac066c5db0d04ebc40180ba6e10bcde7a305198c.tar.gz
Handle fut.failed in asyncdispatch.WithTimeout
Fixes: #8839
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/asyncdispatch.nim6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/pure/asyncdispatch.nim b/lib/pure/asyncdispatch.nim
index 093bf58af..820f34703 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)