Allow a dying thread to participate in the psx mechanism.

If a dying thread blocks all interrupts in order to die in peace,
it can deadlock the psx mechanism for all the surviving threads.
To account for this corner case, while waiting to enter the
_PSX_EXITING state, temporarily unblock the psx_tracker.psx_sig.

  https://github.com/golang/go/issues/42494

Add a psx_test.go:TestThreadChurn() test case for this issue.

Signed-off-by: Andrew G. Morgan <morgan@kernel.org>
2 files changed