Allow SYS_waitpid to be aborted
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 13 Jun 2019 20:26:53 +0000 (16:26 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 11 Jul 2019 18:29:21 +0000 (14:29 -0400)
commit0959a6703e992780f62ab5410845ef34cb59d76f
tree908066f7f0c9f97659f15df64189d4bf49d53e74
parentc0d10a24ce1d5d8e82a52d3e9e823a6517b4415b
Allow SYS_waitpid to be aborted

This is useful for shells that want to abort a waitpid in response to a
signal.  Both busybox and bash expect their waitpid calls to return in
response to a signal.

We probably can rewrite the wait code to use rendezes instead of CVs,
and then we'd get aborting for free.  As it stands, it's not too hard to
build it in.  The should_abort() check actually covers the old 'is
dying' check, which is nice.

The ugliest thing is that wait_one and wait_any are very similar.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/src/syscall.c