diff options
author | akolb <none@none> | 2007-03-09 15:55:28 -0800 |
---|---|---|
committer | akolb <none@none> | 2007-03-09 15:55:28 -0800 |
commit | c97ad5cdc75eb73e3cc38542ca3ba783574b0a7a (patch) | |
tree | 5ba1653d892978d87d6061c8c7f3821f4b3e354c /usr/src/uts/common/os/sig.c | |
parent | 68d3ac02fc9db49ae9dccaecff999963114930a7 (diff) | |
download | illumos-joyent-c97ad5cdc75eb73e3cc38542ca3ba783574b0a7a.tar.gz |
PSARC/2004/402 CPU Caps
6327235 PSARC/2004/402 CPU caps
6464161 Dead KSLICE code should be removed
6514387 FX class contains dead code to keep list of member threads
6518395 kstat_zone_add performs KM_SLEEP allocation when it should not
Diffstat (limited to 'usr/src/uts/common/os/sig.c')
-rw-r--r-- | usr/src/uts/common/os/sig.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/usr/src/uts/common/os/sig.c b/usr/src/uts/common/os/sig.c index 808e5d2095..5c72fb749b 100644 --- a/usr/src/uts/common/os/sig.c +++ b/usr/src/uts/common/os/sig.c @@ -181,7 +181,7 @@ eat_signal(kthread_t *t, int sig) */ if (!signal_is_blocked(t, sig)) { t->t_sig_check = 1; /* have thread do an issig */ - if (t->t_state == TS_SLEEP && (t->t_flag & T_WAKEABLE)) { + if (ISWAKEABLE(t) || ISWAITING(t)) { setrun_locked(t); rval = 1; } else if (t->t_state == TS_STOPPED && sig == SIGKILL && @@ -974,6 +974,11 @@ stop(int why, int what) notify = 1; } } + + /* Move waiting thread to run queue */ + if (ISWAITING(tx)) + setrun_locked(tx); + /* * force the thread into the kernel * if it is not already there. |