[x] stop waiting for forked child when it was interrupted by ^Z
[ ] catch SIGCHILD signals to handle background child process completion and background processes wanting user input
[x] find out the unit of backgrounding / suspension in the jsh grammar: cmd (the whole pipeline!) is the unit of suspension: ^Z will be interpreted as EXIT_FAILURE
[ ] parse the explicit backrounding & sign --> input is the unit of explicit backgrounding ?? What todo with thins like sleep 2 && echo done & ??
[ ] create a linked list of current background processes, assign each one a jsh-job-id , a list of its all its OS process ids in the pipeline and a status (SUSPENDED, RUNNING_ON_BG, WANTING_INPUT, ...)
[ ] create bgfgjobs built-ins that manipulate the background_processes list and send a SIGCONT signal to the child processes
Work in progress -> see jobs-on-background branch
todo list:
cmd
(the whole pipeline!) is the unit of suspension: ^Z will be interpreted as EXIT_FAILURE&
sign -->input
is the unit of explicit backgrounding ?? What todo with thins likesleep 2 && echo done &
??bg
fg
jobs
built-ins that manipulate the background_processes list and send a SIGCONT signal to the child processes