Commit graph

13 commits

Author SHA1 Message Date
Ariadne Conill
d83c8259e6 tighten fallback busyloop implementation 2021-09-19 13:05:12 -05:00
Ariadne Conill
2477e7266c use process descriptors where available for readiness notification 2021-09-19 13:05:12 -05:00
Ariadne Conill
941d7c51d7 implement execution timeouts for executors
Previously, it was possible for an executor to hang forever.  To mitigate
this, we now implement process execution timeouts for executors, by looping
with waitpid(..., WNOHANG) and sleeping.

This could be implemented more efficiently with process descriptors, see
pidfd_open(2), but that interface is Linux-specific and is only available
on Linux 5.3 or newer.
2021-09-19 13:05:12 -05:00
Ariadne Conill
5a0b53cd73 libifupdown: add interface being run for each executor 2020-09-09 15:50:16 -06:00
Ariadne Conill
4d64176ea3 execute: note the phase each executor is being invoked in 2020-08-26 02:06:36 -06:00
Ariadne Conill
21bcbe1017 execute: fix memory leak in lif_execute_fmt_with_result() 2020-07-28 13:53:21 -06:00
Ariadne Conill
fb5ff4eac2 lifecycle: add support for learning dependents from executors (ref #5) 2020-07-28 13:46:25 -06:00
Ariadne Conill
3a75de9f8c execute: add lif_execute_buf_with_result() to collect a result buffer 2020-07-28 13:01:15 -06:00
Ariadne Conill
559bf2d1a4 libifupdown: execute: fix behavior of lif_file_is_executable() 2020-07-25 02:49:44 -06:00
Ariadne Conill
96112d5dc9 libifupdown: execute: add lif_maybe_try_executor() 2020-07-25 02:17:27 -06:00
Ariadne Conill
eb8f1938dc libifupdown: add utility function to determine if a path is executable 2020-07-25 01:58:20 -06:00
Ariadne Conill
4006b38ffa execute: add lif_execute_opts structure 2020-07-23 08:22:26 -06:00
Ariadne Conill
a567d5d0f5 libifupdown: add lif_execute_fmt() 2020-07-23 06:12:56 -06:00