Skip to content

Commit 3bfbb5c

Browse files
raphael-proustsmorimoto
authored andcommitted
Use raise and reraise instead of fail in more places in unix
1 parent ae202d9 commit 3bfbb5c

File tree

9 files changed

+52
-52
lines changed

9 files changed

+52
-52
lines changed

src/unix/lwt_io.ml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ let perform_io : type mode. mode _channel -> int Lwt.t = fun ch ->
231231
(function
232232
| Unix.Unix_error (Unix.EPIPE, _, _) ->
233233
Lwt.return 0
234-
| exn -> Lwt.fail exn) [@ocaml.warning "-4"]
234+
| exn -> Lwt.reraise exn) [@ocaml.warning "-4"]
235235
else
236236
perform ch.buffer ptr len
237237
in
@@ -525,7 +525,7 @@ let make :
525525
max = (match mode with
526526
| Input -> 0
527527
| Output -> size);
528-
close = lazy(Lwt.catch close Lwt.fail);
528+
close = lazy(Lwt.catch close Lwt.reraise);
529529
abort_waiter = abort_waiter;
530530
abort_wakener = abort_wakener;
531531
main = wrapper;
@@ -537,7 +537,7 @@ let make :
537537
perform_io,
538538
fun pos cmd ->
539539
try seek pos cmd
540-
with e when Lwt.Exception_filter.run e -> Lwt.fail e
540+
with e when Lwt.Exception_filter.run e -> Lwt.reraise e
541541
);
542542
} and wrapper = {
543543
state = Idle;
@@ -678,7 +678,7 @@ struct
678678
let ptr = ic.ptr in
679679
if ptr = ic.max then
680680
refill ic >>= function
681-
| 0 -> Lwt.fail End_of_file
681+
| 0 -> raise End_of_file
682682
| _ -> read_char ic
683683
else begin
684684
ic.ptr <- ptr + 1;
@@ -690,7 +690,7 @@ struct
690690
(fun () -> read_char ic >|= fun ch -> Some ch)
691691
(function
692692
| End_of_file -> Lwt.return_none
693-
| exn -> Lwt.fail exn)
693+
| exn -> Lwt.reraise exn)
694694

695695
let read_line ic =
696696
let buf = Buffer.create 128 in
@@ -711,7 +711,7 @@ struct
711711
if cr_read then Buffer.add_char buf '\r';
712712
Lwt.return(Buffer.contents buf)
713713
| exn ->
714-
Lwt.fail exn)
714+
Lwt.reraise exn)
715715
in
716716
read_char ic >>= function
717717
| '\r' -> loop true
@@ -723,7 +723,7 @@ struct
723723
(fun () -> read_line ic >|= fun ch -> Some ch)
724724
(function
725725
| End_of_file -> Lwt.return_none
726-
| exn -> Lwt.fail exn)
726+
| exn -> Lwt.reraise exn)
727727

728728
let unsafe_read_into' ic blit buf ofs len =
729729
let avail = ic.max - ic.ptr in
@@ -771,7 +771,7 @@ struct
771771
let rec loop ic buf ofs len =
772772
read_into ic buf ofs len >>= function
773773
| 0 ->
774-
Lwt.fail End_of_file
774+
raise End_of_file
775775
| n ->
776776
let len = len - n in
777777
if len = 0 then
@@ -985,7 +985,7 @@ struct
985985
if ic.max - ic.ptr < size then
986986
refill ic >>= function
987987
| 0 ->
988-
Lwt.fail End_of_file
988+
raise End_of_file
989989
| _ ->
990990
read_block_unsafe ic size f
991991
else begin
@@ -1440,7 +1440,7 @@ let open_temp_file ?buffer ?flags ?perm ?temp_dir ?prefix ?(suffix = "") () =
14401440
Lwt.return (fname, chan))
14411441
(function
14421442
| Unix.Unix_error _ when n < 1000 -> attempt (n + 1)
1443-
| exn -> Lwt.fail exn)
1443+
| exn -> Lwt.reraise exn)
14441444
in
14451445
attempt 0
14461446

@@ -1468,7 +1468,7 @@ let create_temp_dir
14681468
Lwt.return name)
14691469
(function
14701470
| Unix.Unix_error (Unix.EEXIST, _, _) when n < 1000 -> attempt (n + 1)
1471-
| exn -> Lwt.fail exn)
1471+
| exn -> Lwt.reraise exn)
14721472
in
14731473
attempt 0
14741474

@@ -1489,10 +1489,10 @@ let win32_unlink fn =
14891489
(* If everything succeeded but the final removal still failed,
14901490
restore original permissions *)
14911491
Lwt_unix.chmod fn st_perm >>= fun () ->
1492-
Lwt.fail exn)
1492+
Lwt.reraise exn)
14931493
)
1494-
(fun _ -> Lwt.fail exn)
1495-
| exn -> Lwt.fail exn)
1494+
(fun _ -> Lwt.reraise exn)
1495+
| exn -> Lwt.reraise exn)
14961496

14971497
let unlink =
14981498
if Sys.win32 then
@@ -1549,7 +1549,7 @@ let close_socket fd =
15491549
(function
15501550
(* Occurs if the peer closes the connection first. *)
15511551
| Unix.Unix_error (Unix.ENOTCONN, _, _) -> Lwt.return_unit
1552-
| exn -> Lwt.fail exn) [@ocaml.warning "-4"])
1552+
| exn -> Lwt.reraise exn) [@ocaml.warning "-4"])
15531553
(fun () ->
15541554
Lwt_unix.close fd)
15551555

@@ -1574,7 +1574,7 @@ let open_connection ?fd ?in_buffer ?out_buffer sockaddr =
15741574
~mode:output (Lwt_bytes.write fd)))
15751575
(fun exn ->
15761576
Lwt_unix.close fd >>= fun () ->
1577-
Lwt.fail exn)
1577+
Lwt.reraise exn)
15781578

15791579
let with_close_connection f (ic, oc) =
15801580
(* If the user already tried to close the socket and got an exception, we
@@ -1639,7 +1639,7 @@ let establish_server_generic
16391639
(function
16401640
| Unix.Unix_error (Unix.ECONNABORTED, _, _) ->
16411641
Lwt.return `Try_again
1642-
| e -> Lwt.fail e)
1642+
| e -> Lwt.reraise e)
16431643
in
16441644

16451645
Lwt.pick [try_to_accept; should_stop] >>= function

src/unix/lwt_process.cppo.ml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ let read_opt read ic =
378378
(function
379379
| Unix.Unix_error (Unix.EPIPE, _, _) | End_of_file ->
380380
Lwt.return_none
381-
| exn -> Lwt.fail exn) [@ocaml.warning "-4"]
381+
| exn -> Lwt.reraise exn) [@ocaml.warning "-4"]
382382

383383
let recv_chars pr =
384384
let ic = pr#stdout in
@@ -512,8 +512,8 @@ let pmap ?timeout ?env ?cwd ?stderr cmd text =
512512
| Lwt.Canceled as exn ->
513513
(* Cancel the getter if the sender was canceled. *)
514514
Lwt.cancel getter;
515-
Lwt.fail exn
516-
| exn -> Lwt.fail exn)
515+
Lwt.reraise exn
516+
| exn -> Lwt.reraise exn)
517517

518518
let pmap_chars ?timeout ?env ?cwd ?stderr cmd chars =
519519
let pr = open_process ?timeout ?env ?cwd ?stderr cmd in
@@ -534,8 +534,8 @@ let pmap_line ?timeout ?env ?cwd ?stderr cmd line =
534534
| Lwt.Canceled as exn ->
535535
(* Cancel the getter if the sender was canceled. *)
536536
Lwt.cancel getter;
537-
Lwt.fail exn
538-
| exn -> Lwt.fail exn)
537+
Lwt.reraise exn
538+
| exn -> Lwt.reraise exn)
539539

540540
let pmap_lines ?timeout ?env ?cwd ?stderr cmd lines =
541541
let pr = open_process ?timeout ?env ?cwd ?stderr cmd in

src/unix/lwt_unix.cppo.ml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ let auto_pause timeout =
147147

148148
exception Timeout
149149

150-
let timeout d = sleep d >>= fun () -> Lwt.fail Timeout
150+
let timeout d = sleep d >>= fun () -> raise Timeout
151151

152152
let with_timeout d f = Lwt.pick [timeout d; Lwt.apply f ()]
153153

@@ -582,7 +582,7 @@ let wrap_syscall event ch action =
582582
| Retry_write ->
583583
register_action Write ch action
584584
| e when Lwt.Exception_filter.run e ->
585-
Lwt.fail e
585+
Lwt.reraise e
586586

587587
(* +-----------------------------------------------------------------+
588588
| Basic file input/output |
@@ -636,7 +636,7 @@ let wait_read ch =
636636
Lwt.return_unit
637637
else
638638
register_action Read ch ignore)
639-
Lwt.fail
639+
Lwt.reraise
640640

641641
external stub_read : Unix.file_descr -> Bytes.t -> int -> int -> int = "lwt_unix_read"
642642
external read_job : Unix.file_descr -> Bytes.t -> int -> int -> int job = "lwt_unix_read_job"
@@ -694,7 +694,7 @@ let wait_write ch =
694694
Lwt.return_unit
695695
else
696696
register_action Write ch ignore)
697-
Lwt.fail
697+
Lwt.reraise
698698

699699
external stub_write : Unix.file_descr -> Bytes.t -> int -> int -> int = "lwt_unix_write"
700700
external write_job : Unix.file_descr -> Bytes.t -> int -> int -> int job = "lwt_unix_write_job"
@@ -1034,7 +1034,7 @@ let file_exists name =
10341034
(fun e ->
10351035
match e with
10361036
| Unix.Unix_error _ -> Lwt.return_false
1037-
| _ -> Lwt.fail e) [@ocaml.warning "-4"]
1037+
| _ -> Lwt.reraise e) [@ocaml.warning "-4"]
10381038

10391039
external utimes_job : string -> float -> float -> unit job =
10401040
"lwt_unix_utimes_job"
@@ -1140,7 +1140,7 @@ struct
11401140
(fun e ->
11411141
match e with
11421142
| Unix.Unix_error _ -> Lwt.return_false
1143-
| _ -> Lwt.fail e) [@ocaml.warning "-4"]
1143+
| _ -> Lwt.reraise e) [@ocaml.warning "-4"]
11441144

11451145
end
11461146

@@ -1408,7 +1408,7 @@ let files_of_directory path =
14081408
(fun () -> readdir_n handle chunk_size)
14091409
(fun exn ->
14101410
closedir handle >>= fun () ->
1411-
Lwt.fail exn) >>= fun entries ->
1411+
Lwt.reraise exn) >>= fun entries ->
14121412
if Array.length entries < chunk_size then begin
14131413
state := LDS_done;
14141414
closedir handle >>= fun () ->
@@ -1423,7 +1423,7 @@ let files_of_directory path =
14231423
(fun () -> readdir_n handle chunk_size)
14241424
(fun exn ->
14251425
closedir handle >>= fun () ->
1426-
Lwt.fail exn) >>= fun entries ->
1426+
Lwt.reraise exn) >>= fun entries ->
14271427
if Array.length entries < chunk_size then begin
14281428
state := LDS_done;
14291429
closedir handle >>= fun () ->
@@ -2395,7 +2395,7 @@ let () =
23952395
let _waitpid flags pid =
23962396
Lwt.catch
23972397
(fun () -> Lwt.return (Unix.waitpid flags pid))
2398-
Lwt.fail
2398+
Lwt.reraise
23992399

24002400
let waitpid =
24012401
if Sys.win32 then

test/unix/test_lwt_bytes.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,7 @@ let suite = suite "lwt_bytes" [
793793
)
794794
(function
795795
| Invalid_argument _message -> Lwt.return_true
796-
| exn -> Lwt.fail exn
796+
| exn -> Lwt.reraise exn
797797
)
798798
end;
799799

@@ -825,7 +825,7 @@ let suite = suite "lwt_bytes" [
825825
)
826826
(function
827827
| Invalid_argument _message -> Lwt.return_true
828-
| exn -> Lwt.fail exn
828+
| exn -> Lwt.reraise exn
829829
)
830830
end;
831831

@@ -839,7 +839,7 @@ let suite = suite "lwt_bytes" [
839839
)
840840
(function
841841
| Invalid_argument _message -> Lwt.return_true
842-
| exn -> Lwt.fail exn
842+
| exn -> Lwt.reraise exn
843843
)
844844
end;
845845
]

test/unix/test_lwt_engine.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ let timing_tests = [
4949
| Lwt_unix.Timeout ->
5050
Lwt.return (Unix.gettimeofday ())
5151
| exn ->
52-
Lwt.fail exn)
52+
Lwt.reraise exn)
5353

5454
>>= fun stop ->
5555

test/unix/test_lwt_io.ml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -320,7 +320,7 @@ let suite = suite "lwt_io" [
320320
exceptions_observed := !exceptions_observed + 1;
321321
Lwt.return_unit
322322
| exn ->
323-
Lwt.fail exn) [@ocaml.warning "-4"]
323+
Lwt.reraise exn) [@ocaml.warning "-4"]
324324
in
325325

326326
let fd_r, fd_w = Lwt_unix.pipe () in
@@ -353,7 +353,7 @@ let suite = suite "lwt_io" [
353353
let filename = ref "." in
354354
let wrap f (filename', chan) = filename := filename'; f chan in
355355
let write_data chan = Lwt_io.write chan "test file content" in
356-
let write_data_fail _ = Lwt.fail Dummy_error in
356+
let write_data_fail _ = Lwt.fail Dummy_error in
357357
Lwt_io.with_temp_file (wrap write_data) ~prefix >>= fun _ ->
358358
let no_temps1 = not (Sys.file_exists !filename) in
359359
Lwt.catch
@@ -422,7 +422,7 @@ let suite = suite "lwt_io" [
422422
(function
423423
| Unix.Unix_error (Unix.EISDIR, "file_length", ".") ->
424424
Lwt.return_true
425-
| exn -> Lwt.fail exn)
425+
| exn -> Lwt.reraise exn)
426426
end;
427427

428428
test "input channel of_bytes initial position"

test/unix/test_lwt_unix.ml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ let utimes_tests = [
172172
(function
173173
| Unix.Unix_error (Unix.ENOENT, "utimes", _) -> Lwt.return_unit
174174
| Unix.Unix_error (Unix.EUNKNOWNERR _, "utimes", _) -> Lwt.return_unit
175-
| e -> Lwt.fail e) [@ocaml.warning "-4"] >>= fun () ->
175+
| e -> Lwt.reraise e) [@ocaml.warning "-4"] >>= fun () ->
176176
Lwt.return_true);
177177
]
178178

@@ -218,7 +218,7 @@ let readdir_tests =
218218
Lwt.return (Some filename))
219219
(function
220220
| End_of_file -> Lwt.return_none
221-
| exn -> Lwt.fail exn)
221+
| exn -> Lwt.reraise exn)
222222
>>= function
223223
| None -> Lwt.return acc
224224
| Some filename -> loop (filename::acc)
@@ -305,7 +305,7 @@ let readdir_tests =
305305
(function
306306
| Unix.Unix_error (Unix.EBADF, tag', _) when tag' = tag ->
307307
Lwt.return_true
308-
| exn -> Lwt.fail exn) [@ocaml.warning "-4"]
308+
| exn -> Lwt.reraise exn) [@ocaml.warning "-4"]
309309
in
310310

311311
Lwt_list.for_all_s (fun (tag, t) -> expect_ebadf tag t)
@@ -711,7 +711,7 @@ let writev_tests =
711711
Lwt.return_false)
712712
(function
713713
| Invalid_argument _ -> Lwt.return_true
714-
| e -> Lwt.fail e)
714+
| e -> Lwt.reraise e)
715715
in
716716

717717
let close write_fd = fun () ->
@@ -963,7 +963,7 @@ let bind_tests =
963963
| Unix.Unix_error (Unix.EADDRINUSE, "bind", _)
964964
| Unix.Unix_error (Unix.EISDIR, "bind", _) as exn ->
965965
if attempts <= 1 then
966-
Lwt.fail exn
966+
Lwt.reraise exn
967967
else
968968
bind_loop (attempts - 1)
969969
| Unix.Unix_error (Unix.EPERM, "bind", _) ->
@@ -972,8 +972,8 @@ let bind_tests =
972972
test should add a check for WSL by checking for the existence
973973
of /proc/version, reading it, and checking its contents for the
974974
string "WSL". *)
975-
Lwt.fail Skip
976-
| e -> Lwt.fail e) [@ocaml.warning "-4"]
975+
raise Skip
976+
| e -> Lwt.reraise e) [@ocaml.warning "-4"]
977977
in
978978

979979
Lwt.finalize
@@ -1014,7 +1014,7 @@ let bind_tests =
10141014
Lwt.return_false)
10151015
(function
10161016
| Unix.Unix_error (Unix.EBADF, _, _) -> Lwt.return_true
1017-
| e -> Lwt.fail e) [@ocaml.warning "-4"]);
1017+
| e -> Lwt.reraise e) [@ocaml.warning "-4"]);
10181018

10191019
test "bind: aborted"
10201020
(fun () ->
@@ -1028,7 +1028,7 @@ let bind_tests =
10281028
Lwt.return_false)
10291029
(function
10301030
| Exit -> Lwt.return_true
1031-
| e -> Lwt.fail e))
1031+
| e -> Lwt.reraise e))
10321032
(fun () -> Lwt_unix.close socket));
10331033
]
10341034

0 commit comments

Comments
 (0)