summaryrefslogtreecommitdiff
path: root/src/util.ml
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.ml')
-rw-r--r--src/util.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/util.ml b/src/util.ml
index 5155fd7..b37ae4f 100644
--- a/src/util.ml
+++ b/src/util.ml
@@ -18,5 +18,8 @@ let read_one_msg fd =
assert (read fd hdr 0 Marshal.header_size = Marshal.header_size);
let dlen = Marshal.data_size hdr 0 in
let data = String.create dlen in
- assert (read fd data 0 dlen = dlen);
+ let rl = ref 0 in
+ while !rl < dlen do
+ rl := !rl + read fd data !rl (dlen - !rl)
+ done;
Marshal.from_string (hdr ^ data) 0