From 7283a5a2765c0670e9dceec70e626a49a30d269c Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Thu, 15 Mar 2012 15:49:22 +0000 Subject: sparsify: Unlink temporary overlay file if user presses ^C. Add a signal handler so this potentially large temporary file is removed when the user hits ^C. --- sparsify/sparsify.ml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'sparsify') diff --git a/sparsify/sparsify.ml b/sparsify/sparsify.ml index bafaee57..1ab066eb 100644 --- a/sparsify/sparsify.ml +++ b/sparsify/sparsify.ml @@ -144,9 +144,13 @@ let () = (* Create the temporary overlay file. *) let overlaydisk = let tmp = Filename.temp_file "sparsify" ".qcow2" in + let unlink_tmp () = try unlink tmp with _ -> () in (* Unlink on exit. *) - at_exit (fun () -> try unlink tmp with _ -> ()); + at_exit unlink_tmp; + + (* Unlink on sigint. *) + Sys.set_signal Sys.sigint (Sys.Signal_handle (fun _ -> unlink_tmp ())); (* Create it with the indisk as the backing file. *) let cmd = -- cgit