]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Register temporary compiler stdout/stderr files as pending
authorJoel Rosdahl <joel@rosdahl.net>
Thu, 28 May 2020 20:08:26 +0000 (22:08 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Thu, 28 May 2020 20:25:52 +0000 (22:25 +0200)
This avoids leaking them when a compilation is interrupted via e.g.
Ctrl+C.

src/ccache.c

index de026bcedaece7b28b417f9dd513fb4d825f2599..797e4323ca2fd05e06d7472256dd250e2822d223 100644 (file)
@@ -1471,8 +1471,11 @@ to_cache(struct args *args, struct hash *depend_mode_hash)
        if (!conf->depend_mode) {
                tmp_stdout = format("%s.tmp.stdout", cached_obj);
                tmp_stdout_fd = create_tmp_fd(&tmp_stdout);
+               add_pending_tmp_file(tmp_stdout);
+
                tmp_stderr = format("%s.tmp.stderr", cached_obj);
                tmp_stderr_fd = create_tmp_fd(&tmp_stderr);
+               add_pending_tmp_file(tmp_stderr);
 
                status = execute(args->argv, tmp_stdout_fd, tmp_stderr_fd, &compiler_pid);
                args_pop(args, 3);
@@ -1480,8 +1483,11 @@ to_cache(struct args *args, struct hash *depend_mode_hash)
                // The cached object path is not known yet, use temporary files.
                tmp_stdout = format("%s/tmp.stdout", temp_dir());
                tmp_stdout_fd = create_tmp_fd(&tmp_stdout);
+               add_pending_tmp_file(tmp_stdout);
+
                tmp_stderr = format("%s/tmp.stderr", temp_dir());
                tmp_stderr_fd = create_tmp_fd(&tmp_stderr);
+               add_pending_tmp_file(tmp_stderr);
 
                // Use the original arguments (including dependency options) in depend
                // mode.