diff options
Diffstat (limited to 'src/lwt/generic/lwt_unix_impl.ml')
-rw-r--r-- | src/lwt/generic/lwt_unix_impl.ml | 6 |
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, _, _) -> |