kern_sig.c (4444375710b8ca3ba1514837f73fc507da403678) | kern_sig.c (5215b1872feaad7ecf7cb1234749ecf04071deef) |
---|---|
1/* 2 * Copyright (c) 1982, 1986, 1989, 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * (c) UNIX System Laboratories, Inc. 5 * All or some portions of this file are derived from material licensed 6 * to the University of California by American Telephone and Telegraph 7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with 8 * the permission of UNIX System Laboratories, Inc. --- 1492 unchanged lines hidden (view full) --- 1501 if (prop & SA_STOP) { 1502 if (p->p_flag & P_PPWAIT) 1503 goto out; 1504 mtx_lock_spin(&sched_lock); 1505 FOREACH_THREAD_IN_PROC(p, td) { 1506 if (TD_IS_SLEEPING(td) && 1507 (td->td_flags & TDF_SINTR)) 1508 thread_suspend_one(td); | 1/* 2 * Copyright (c) 1982, 1986, 1989, 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * (c) UNIX System Laboratories, Inc. 5 * All or some portions of this file are derived from material licensed 6 * to the University of California by American Telephone and Telegraph 7 * Co. or Unix System Laboratories, Inc. and are reproduced herein with 8 * the permission of UNIX System Laboratories, Inc. --- 1492 unchanged lines hidden (view full) --- 1501 if (prop & SA_STOP) { 1502 if (p->p_flag & P_PPWAIT) 1503 goto out; 1504 mtx_lock_spin(&sched_lock); 1505 FOREACH_THREAD_IN_PROC(p, td) { 1506 if (TD_IS_SLEEPING(td) && 1507 (td->td_flags & TDF_SINTR)) 1508 thread_suspend_one(td); |
1509 else if (TD_IS_IDLE(td)) { 1510 thread_suspend_one(td); 1511 } | |
1512 } 1513 if (p->p_suspcount == p->p_numthreads) { 1514 mtx_unlock_spin(&sched_lock); 1515 stop(p); 1516 p->p_xstat = sig; 1517 SIGDELSET(p->p_siglist, sig); 1518 PROC_LOCK(p->p_pptr); 1519 if ((p->p_pptr->p_procsig->ps_flag & --- 96 unchanged lines hidden (view full) --- 1616 if (td->td_priority > PUSER) { 1617 td->td_priority = PUSER; 1618 } 1619 } 1620 if (td->td_flags & TDF_CVWAITQ) 1621 cv_abort(td); 1622 else 1623 abortsleep(td); | 1509 } 1510 if (p->p_suspcount == p->p_numthreads) { 1511 mtx_unlock_spin(&sched_lock); 1512 stop(p); 1513 p->p_xstat = sig; 1514 SIGDELSET(p->p_siglist, sig); 1515 PROC_LOCK(p->p_pptr); 1516 if ((p->p_pptr->p_procsig->ps_flag & --- 96 unchanged lines hidden (view full) --- 1613 if (td->td_priority > PUSER) { 1614 td->td_priority = PUSER; 1615 } 1616 } 1617 if (td->td_flags & TDF_CVWAITQ) 1618 cv_abort(td); 1619 else 1620 abortsleep(td); |
1624 } else if (TD_IS_IDLE(td)) { 1625 TD_CLR_IDLE(td); 1626 setrunnable(td); | |
1627 } 1628#ifdef SMP 1629 else { 1630 /* 1631 * Other states do nothing with the signal immediatly, 1632 * other than kicking ourselves if we are running. 1633 * It will either never be noticed, or noticed very soon. 1634 */ --- 647 unchanged lines hidden --- | 1621 } 1622#ifdef SMP 1623 else { 1624 /* 1625 * Other states do nothing with the signal immediatly, 1626 * other than kicking ourselves if we are running. 1627 * It will either never be noticed, or noticed very soon. 1628 */ --- 647 unchanged lines hidden --- |