4 The sub-process API makes it possible to run background sub-processes
5 for the entire lifetime of a Git invocation. If Git needs to communicate
6 with an external process multiple times, then this can reduces the process
7 invocation overhead. Git and the sub-process communicate through stdin and
10 The sub-processes are kept in a hashmap by command name and looked up
11 via the subprocess_find_entry function. If an existing instance can not
12 be found then a new process should be created and started. When the
13 parent git command terminates, all sub-processes are also terminated.
15 This API is based on the run-command API.
20 * `struct subprocess_entry`
22 The sub-process structure. Members should not be accessed directly.
27 'int(*subprocess_start_fn)(struct subprocess_entry *entry)'::
29 User-supplied function to initialize the sub-process. This is
30 typically used to negotiate the interface version and capabilities.
38 Function to test two subprocess hashmap entries for equality.
42 Start a subprocess and add it to the subprocess hashmap.
46 Kill a subprocess and remove it from the subprocess hashmap.
48 `subprocess_find_entry`::
50 Find a subprocess in the subprocess hashmap.
52 `subprocess_get_child_process`::
54 Get the underlying `struct child_process` from a subprocess.
56 `subprocess_read_status`::
58 Helper function to read packets looking for the last "status=<foo>"