lib/process: Add process helpers
authorJeremy Kerr <jk@ozlabs.org>
Mon, 12 Aug 2013 07:57:41 +0000 (15:57 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Mon, 19 Aug 2013 05:27:59 +0000 (13:27 +0800)
commite52a8c61a640ab4fce0b4caaa796ae3e1c4ff8a3
tree2256e91d0b24e068531361a8b0793cd2be3832fc
parente25ee629c6dfa47c13121cc70b2da1b2dd21036c
lib/process: Add process helpers

We've grown-out of pb_run_cmd a little, as we have a number of different
process types:

   boot():
    - kexec: short-running process, run synchronously
    - boot hooks: short-running, run sync, need exit code & stdout

   network init:
    - interface configuration: short running, run sync
    - udhcp processes are long running, we may want completion, but
      doesn't block other actions

   downloads:
    - potentially long-running, block parse progress

   config nvram:
    - read: short running, can block, need stdout
    - write: short running, can block

We'd like to introduce proper asynchronous processes, to allow config &
boot-option downloads without blocking the discover server.

This change introduces a new type for processes, 'struct process'. These
structures are created with process_create, and run with
process_run_sync or process_run_async. The latter reports completion
through a callback member of struct process.

Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
lib/Makefile.am
lib/process/process.c [new file with mode: 0644]
lib/process/process.h [new file with mode: 0644]