git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v7 00/10] refactor the filter process code into a reusable module

From
Ben Peart <peartben@gmail.com>
Date
May 5, 2017, 15:27 UTC
Message-ID
<20170505152802.6724-1-benpeart@microsoft.com>
Changes from V6 include:
convert: remove erroneous tests for errno == EPIPE
 - split into separate patch to fix a preexisting bug discovered in the review process
pkt-line: Update packet_read_line() to test for len > 0
 - split into separate patch to deal with errors that return negative lengths
pkt-line: add packet_read_line_gently()
 - update documentation to clarify return values
 - update white space in function definition

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 commands
Ben Peart (10):
  convert: remove erroneous tests for errno == EPIPE
  pkt-line: fix packet_read_line() to handle len < 0 errors
  pkt-line: add packet_read_line_gently()
  convert: move packet_write_line() into pkt-line as packet_writel()
  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 EOF
 Documentation/technical/api-sub-process.txt |  59 ++++++++++
 Makefile                                    |   1 +
 convert.c                                   | 161 ++++++----------------------
 pkt-line.c                                  |  33 +++++-
 pkt-line.h                                  |  12 +++
 sub-process.c                               | 106 ++++++++++++++++++
 sub-process.h                               |  49 +++++++++
 7 files changed, 292 insertions(+), 129 deletions(-)
 create mode 100644 Documentation/technical/api-sub-process.txt
 create mode 100644 sub-process.c
 create mode 100644 sub-process.h
-- 
2.12.2.gvfs.2.20.g3624a68d62.dirty
Next: Ben Peart
Message 1 of 16 in “refactor the filter process code into a reusable module”
  1. 00/10 refactor the filter process code into a reusable moduleBen Peart, May 5, 2017
  2. 01/10 convert: remove erroneous tests for errno == EPIPEBen Peart, May 5, 2017
  3. 02/10 pkt-line: fix packet_read_line() to handle len < 0 errorsBen Peart, May 5, 2017
  4. 03/10 pkt-line: add packet_read_line_gently()Ben Peart, May 5, 2017
  5. 04/10 convert: move packet_write_line() into pkt-line as packet_writel()Ben Peart, May 5, 2017
  6. Jeff KingMay 13, 2017
  7. Junio C HamanoMay 15, 2017
  8. 05/10 convert: split start_multi_file_filter() into two separate functionsBen Peart, May 5, 2017
  9. 07/10 convert: Update generic functions to only use generic data structuresBen Peart, May 5, 2017
  10. 09/10 sub-process: move sub-process functions into separate filesBen Peart, May 5, 2017
  11. Jeff KingMay 13, 2017
  12. 10/10 convert: Update subprocess_read_status to not die on EOFBen Peart, May 5, 2017
  13. 08/10 convert: rename reusable sub-process functionsBen Peart, May 5, 2017
  14. 06/10 convert: Separate generic structures and variables from the filter specific onesBen Peart, May 5, 2017
  15. Junio C HamanoMay 8, 2017
  16. Jeff KingMay 13, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.