summaryrefslogtreecommitdiffstats
path: root/src/lwt/generic/lwt_unix_impl.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/lwt/generic/lwt_unix_impl.ml')
-rw-r--r--src/lwt/generic/lwt_unix_impl.ml6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/lwt/generic/lwt_unix_impl.ml b/src/lwt/generic/lwt_unix_impl.ml
index 111def4..09f007a 100644
--- a/src/lwt/generic/lwt_unix_impl.ml
+++ b/src/lwt/generic/lwt_unix_impl.ml
@@ -128,8 +128,10 @@ let rec run thread =
([], [], [])
else
try
- let res = Unix.select infds outfds [] delay in
- if delay > 0. && !now <> -1. then now := !now +. delay;
+ let (readers, writers, _) as res =
+ Unix.select infds outfds [] delay in
+ if delay > 0. && !now <> -1. && readers = [] && writers = [] then
+ now := !now +. delay;
res
with
Unix.Unix_error (Unix.EINTR, _, _) ->