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 ---