Refactor the filter.<driver>.process code into a separate sub-process module that can be used to reduce the cost of starting up a sub-process for multiple commands. It does this by keeping the external process running and processing all commands by communicating over standard input and standard output using the packet format (pkt-line) based protocol. Full documentation is in Documentation/technical/api-sub-process.txt.
This code is refactored from:
Commit edcc85814c ("convert: add filter.<driver>.process option", 2016-10-16)
keeps the external process running and processes all commandsBen Peart (8):
pkt-line: add packet_writel() and packet_read_line_gently()
convert: Update convert to use new packet_writel() function
convert: Split start_multi_file_filter into two separate functions
convert: Separate generic structures and variables from the filter
specific ones
convert: Update generic functions to only use generic data structures
convert: rename reusable sub-process functions
sub-process: move sub-process functions into separate files
convert: Update subprocess_read_status to not die on EOFDocumentation/technical/api-sub-process.txt | 54 ++++++++++ Makefile | 1 + convert.c | 159 +++++----------------------- pkt-line.c | 31 ++++++ pkt-line.h | 11 ++ sub-process.c | 120 +++++++++++++++++++++ sub-process.h | 46 ++++++++ 7 files changed, 292 insertions(+), 130 deletions(-) create mode 100644 Documentation/technical/api-sub-process.txt create mode 100644 sub-process.c create mode 100644 sub-process.h
-- 2.12.1.gvfs.1.18.ge47db72