sub-process API
===============

The sub-process API makes it possible to run background sub-processes
for the entire lifetime of a Git invocation. If Git needs to communicate
with an external process multiple times, then this can reduces the process
invocation overhead. Git and the sub-process communicate through stdin and
stdout.

The sub-processes are kept in a hashmap by command name and looked up
via the subprocess_find_entry function.  If an existing instance can not
be found then a new process should be created and started.  When the
parent git command terminates, all sub-processes are also terminated.

This API is based on the run-command API.

Data structures
---------------

* `struct subprocess_entry`

The sub-process structure.  Members should not be accessed directly.

Types
-----

'int(*subprocess_start_fn)(struct subprocess_entry *entry)'::

	User-supplied function to initialize the sub-process.  This is
	typically used to negotiate the interface version and capabilities.


Functions
---------

`cmd2process_cmp`::

	Function to test two subprocess hashmap entries for equality.

`subprocess_start`::

	Start a subprocess and add it to the subprocess hashmap.

`subprocess_stop`::

	Kill a subprocess and remove it from the subprocess hashmap.

`subprocess_find_entry`::

	Find a subprocess in the subprocess hashmap.

`subprocess_get_child_process`::

	Get the underlying `struct child_process` from a subprocess.

`subprocess_read_status`::

	Helper function to read packets looking for the last "status=<foo>"
	key/value pair.
