diff --git a/lib/oca_lib.ml b/lib/oca_lib.ml index be79872..1890065 100644 --- a/lib/oca_lib.ml +++ b/lib/oca_lib.ml @@ -133,7 +133,7 @@ let mkdir_p dir = let rec rm_rf dirname = let%lwt dir = Lwt_unix.opendir (Fpath.to_string dirname) in - Lwt.finalize begin fun () -> + begin let rec rm_files () = match%lwt Lwt_unix.readdir dir with | "." | ".." -> rm_files () @@ -149,10 +149,11 @@ let rec rm_rf dirname = rm_files () in try%lwt rm_files () with End_of_file -> Lwt.return_unit - end begin fun () -> + end + [%lwt.finally let%lwt () = Lwt_unix.closedir dir in Lwt_unix.rmdir (Fpath.to_string dirname) - end + ] type timer = float ref diff --git a/server/backend/check.ml b/server/backend/check.ml index 32cc8ae..229358b 100644 --- a/server/backend/check.ml +++ b/server/backend/check.ml @@ -75,11 +75,7 @@ let ocluster_build ~cap ~conf ~base_obuilder ~stdout ~stderr c = let exec_out ~fexec ~fout = let stdin, stdout = Lwt_io.pipe () in - let proc = - Lwt.finalize - (fun () -> fexec ~stdout) - (fun () -> Lwt_io.close stdout) - in + let proc = (fexec ~stdout) [%lwt.finally Lwt_io.close stdout] in let%lwt res = fout ~stdin in let%lwt () = Lwt_io.close stdin in let%lwt r = proc in