Move the P_WEXIT check from lwpsignal() to kern_kill(). That is, disallow
signals to exiting processes but allow signals to threads that have not gone
through the exit interlock yet. This allows exit1() to interlock the process
and still signal its LWPs.
Fix a bug in exit1() which was improperly using lwp_signotify() to wake up
LWPs to force the to exit. This function is basically a NOP if there are
no signals pending to the LWP. Send a real SIGKILL to the LWP instead.
This fixes a bug where vkernels get stuck in an exiting state and cannot be
killed.
Reported-by: Joe Talbott <josepht@cstone.net>