summaryrefslogtreecommitdiff
path: root/run-command.h
diff options
context:
space:
mode:
authorLars Schneider <larsxschneider@gmail.com>2016-10-16 23:20:28 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-10-17 18:36:50 (GMT)
commitac2fbaa674ce3d5b5faf6a83f88cc4af1654f9cd (patch)
tree5625319d3e28c571428d38fd9572d12e03e5e472 /run-command.h
parentb992fe104ecde5a362a31d610de96518f398d5c0 (diff)
downloadgit-ac2fbaa674ce3d5b5faf6a83f88cc4af1654f9cd.zip
git-ac2fbaa674ce3d5b5faf6a83f88cc4af1654f9cd.tar.gz
git-ac2fbaa674ce3d5b5faf6a83f88cc4af1654f9cd.tar.bz2
run-command: add clean_on_exit_handler
Some processes might want to perform cleanup tasks before Git kills them due to the 'clean_on_exit' flag. Let's give them an interface for doing this. The feature is used in a subsequent patch. Please note, that the cleanup callback is not executed if Git dies of a signal. The reason is that only "async-signal-safe" functions would be allowed to be call in that case. Since we cannot control what functions the callback will use, we will not support the case. See 507d7804 for more details. Helped-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Lars Schneider <larsxschneider@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'run-command.h')
-rw-r--r--run-command.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/run-command.h b/run-command.h
index cf29a31..dd1c78c 100644
--- a/run-command.h
+++ b/run-command.h
@@ -43,6 +43,8 @@ struct child_process {
unsigned stdout_to_stderr:1;
unsigned use_shell:1;
unsigned clean_on_exit:1;
+ void (*clean_on_exit_handler)(struct child_process *process);
+ void *clean_on_exit_handler_cbdata;
};
#define CHILD_PROCESS_INIT { NULL, ARGV_ARRAY_INIT, ARGV_ARRAY_INIT }