aboutsummaryrefslogtreecommitdiff
path: root/lib/cThread.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/cThread.ml')
-rw-r--r--lib/cThread.ml16
1 files changed, 3 insertions, 13 deletions
diff --git a/lib/cThread.ml b/lib/cThread.ml
index 2d1f10bf39..4f60a69745 100644
--- a/lib/cThread.ml
+++ b/lib/cThread.ml
@@ -1,6 +1,6 @@
(************************************************************************)
(* v * The Coq Proof Assistant / The Coq Development Team *)
-(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2015 *)
+(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2016 *)
(* \VV/ **************************************************************)
(* // * This file is distributed under the terms of the *)
(* * GNU Lesser General Public License Version 2.1 *)
@@ -8,22 +8,12 @@
type thread_ic = in_channel
-let prepare_in_channel_for_thread_friendly_io ic =
- Unix.set_nonblock (Unix.descr_of_in_channel ic); ic
-
-let safe_wait_timed_read fd time =
- try Thread.wait_timed_read fd time
- with Unix.Unix_error (Unix.EINTR, _, _) ->
- (** On Unix, the above function may raise this exception when it is
- interrupted by a signal. (It uses Unix.select internally.) *)
- false
+let prepare_in_channel_for_thread_friendly_io ic = ic
let thread_friendly_read_fd fd s ~off ~len =
let rec loop () =
try Unix.read fd s off len
- with Unix.Unix_error((Unix.EWOULDBLOCK|Unix.EAGAIN|Unix.EINTR),_,_) ->
- while not (safe_wait_timed_read fd 0.05) do Thread.yield () done;
- loop ()
+ with Unix.Unix_error(Unix.EINTR,_,_) -> loop ()
in
loop ()