Skip to content
Snippets Groups Projects
Commit e86dd911 authored by Michele Alberti's avatar Michele Alberti
Browse files

Remove temporary files only when computation correctly terminates.

parent e58920f9
No related branches found
No related tags found
No related merge requests found
......@@ -167,13 +167,13 @@ let detect_default_solvers () =
Stdlib.close_in in_channel;
Buffer.contents buf
in
Utils.remove_on_app_mode tmp;
if retcode <> 0
then begin
Logs.info (fun m -> m "No solver `%s' found." S.name);
None
end
else begin
Utils.remove_on_app_mode tmp;
(* If available, we save a [config] for solver. *)
let version = version_of_solver solver cmd_output in
let config = { name = S.name; exe; version; } in
......
......@@ -45,10 +45,11 @@ let check_availability solver config =
let retcode = Sys.command cmd in
let in_channel = Stdlib.open_in tmp in
Stdlib.close_in in_channel;
Utils.remove_on_app_mode tmp;
if retcode = 0
then
then begin
Utils.remove_on_app_mode tmp;
Ok ()
end
else
Error
(Format.sprintf
......@@ -199,7 +200,6 @@ let exec_tasks ~raw_options solver config model tasks_htbl =
Logs.info (fun m -> m "Executing command `%s'." cmd);
try
let retcode = Sys.command cmd in
Utils.remove_on_app_mode prop;
if retcode <> 0
then Error (Format.sprintf "Command `%s' has failed." cmd)
else begin
......@@ -207,14 +207,16 @@ let exec_tasks ~raw_options solver config model tasks_htbl =
let result = extract_result solver ~log ~output in
Logs.app (fun m -> m "Result of `%s': %a."
task.id Solver.Result.pretty result);
Utils.remove_on_app_mode output;
if Solver.Result.equal result Solver.Result.Failure
then
Logs.app (fun m ->
m "See error messages in `%s' for more information."
log)
else
else begin
Utils.remove_on_app_mode log;
Utils.remove_on_app_mode prop;
Utils.remove_on_app_mode output;
end;
Ok result
end
with _ ->
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment