removes intermediate fork in run_command_list_array for background jobs so that actual child state can be tracked properly
improves reliability of job status updates and notifications
I included a jobs.sh test script, but it isn't incorporated into the test target because it causes it hang. Running it separately it works fine though and exits cleanly. Also not sure if these tests are only for parity, if so then it needs more attention since I didn't attempt to run it in other shells yet.
See also XXX comments inline. In particular the one about the general fork abstraction. I feel like forking a job process could be generalized since it happens in several places.
Draft fix for https://github.com/emersion/mrsh/issues/174
run_command_list_array
for background jobs so that actual child state can be tracked properlyI included a jobs.sh test script, but it isn't incorporated into the test target because it causes it hang. Running it separately it works fine though and exits cleanly. Also not sure if these tests are only for parity, if so then it needs more attention since I didn't attempt to run it in other shells yet.
See also XXX comments inline. In particular the one about the general fork abstraction. I feel like forking a job process could be generalized since it happens in several places.