summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
authorDominik Picheta <dominikpicheta@googlemail.com>2018-09-03 21:34:52 +0100
committerGitHub <noreply@github.com>2018-09-03 21:34:52 +0100
commite789acb59b03b250477a84ba6b10fd0391c45b2f (patch)
tree2c0c833de72ad6d0e7f711013672c1706583ff11 /lib
parente4be1cb81477f32b33722dabde9776cb676e363e (diff)
parentac066c5db0d04ebc40180ba6e10bcde7a305198c (diff)
downloadNim-e789acb59b03b250477a84ba6b10fd0391c45b2f.tar.gz
Merge pull request #8840 from pigmej/fix_with_timeout
Handle fut.failed in asyncdispatch.WithTimeout
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)