From 03caf3d35674cd9c30b4b7aa5d4620e45d5b07f4 Mon Sep 17 00:00:00 2001 From: malc Date: Wed, 23 Jan 2013 10:51:19 +0400 Subject: [PATCH] Robustness --- wsi.ml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/wsi.ml b/wsi.ml index 48cb3c8..f203b93 100644 --- a/wsi.ml +++ b/wsi.ml @@ -597,9 +597,13 @@ let syncsendwithrep sock secstowait s f = let now = Unix.gettimeofday in let deadline = now () +. secstowait in let rec readtillcompletion () = - let r, _, _ = - tempfailureretry (Unix.select [sock] [] []) (deadline -. now ()) + let sf deadline = + let timeout = deadline -. now () in + if timeout <= 0.0 + then [], [], [] + else Unix.select [sock] [] [] timeout in + let r, _, _ = tempfailureretry sf deadline in match r with | [] -> error "didn't get X response in %f seconds, aborting" secstowait | _ -> -- 2.11.4.GIT