summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Pouillard <np@nicolaspouillard.fr>2008-07-31 07:36:12 +0000
committerNicolas Pouillard <np@nicolaspouillard.fr>2008-07-31 07:36:12 +0000
commitf6bd5658e260e2c55d81a022005c763e67cd5cbb (patch)
tree5715cd69d366970f08694d6467e0b6fd2ceed62a
parent50da157513db30f452ac4d6c5bc01ea250337a17 (diff)
ocamlbuild: fix a double "close" problem (PR#4380)
Thanks to mwipliez for spotting this double close, to jld for providing a patch. Author: Nicolas Pouillard <nicolas.pouillard@gmail.com> Committer: Nicolas Pouillard <ertai@port-ext16.ensta.fr> git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8960 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
-rw-r--r--ocamlbuild/ocamlbuild_unix_plugin.ml7
1 files changed, 4 insertions, 3 deletions
diff --git a/ocamlbuild/ocamlbuild_unix_plugin.ml b/ocamlbuild/ocamlbuild_unix_plugin.ml
index d0dfd8dee..cffdb2337 100644
--- a/ocamlbuild/ocamlbuild_unix_plugin.ml
+++ b/ocamlbuild/ocamlbuild_unix_plugin.ml
@@ -52,9 +52,10 @@ let run_and_open s kont =
| Unix.WEXITED 0 -> ()
| Unix.WEXITED _ | Unix.WSIGNALED _ | Unix.WSTOPPED _ ->
failwith (Printf.sprintf "Error while running: %s" s) in
- try
- let res = kont ic in close (); res
- with e -> (close (); raise e)
+ let res = try
+ kont ic
+ with e -> (close (); raise e)
+ in close (); res
let stdout_isatty () =
Unix.isatty Unix.stdout