kern_sig.c (68520) | kern_sig.c (68808) |
---|---|
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. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)kern_sig.c 8.7 (Berkeley) 4/18/94 | 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. --- 22 unchanged lines hidden (view full) --- 31 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 32 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 33 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 34 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 35 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 36 * SUCH DAMAGE. 37 * 38 * @(#)kern_sig.c 8.7 (Berkeley) 4/18/94 |
39 * $FreeBSD: head/sys/kern/kern_sig.c 68520 2000-11-09 08:25:48Z marcel $ | 39 * $FreeBSD: head/sys/kern/kern_sig.c 68808 2000-11-16 02:16:44Z jhb $ |
40 */ 41 42#include "opt_compat.h" 43#include "opt_ktrace.h" 44 45#include <sys/param.h> 46#include <sys/kernel.h> 47#include <sys/sysproto.h> --- 1230 unchanged lines hidden (view full) --- 1278 /* 1279 * If traced, always stop, and stay 1280 * stopped until released by the parent. 1281 */ 1282 p->p_xstat = sig; 1283 psignal(p->p_pptr, SIGCHLD); 1284 do { 1285 stop(p); | 40 */ 41 42#include "opt_compat.h" 43#include "opt_ktrace.h" 44 45#include <sys/param.h> 46#include <sys/kernel.h> 47#include <sys/sysproto.h> --- 1230 unchanged lines hidden (view full) --- 1278 /* 1279 * If traced, always stop, and stay 1280 * stopped until released by the parent. 1281 */ 1282 p->p_xstat = sig; 1283 psignal(p->p_pptr, SIGCHLD); 1284 do { 1285 stop(p); |
1286 DROP_GIANT_NOSWITCH(); 1287 mtx_enter(&sched_lock, MTX_SPIN); |
|
1286 mi_switch(); | 1288 mi_switch(); |
1289 mtx_exit(&sched_lock, MTX_SPIN); 1290 PICKUP_GIANT(); |
|
1287 } while (!trace_req(p) 1288 && p->p_flag & P_TRACED); 1289 1290 /* 1291 * If the traced bit got turned off, go back up 1292 * to the top to rescan signals. This ensures 1293 * that p_sig* and ps_sigact are consistent. 1294 */ --- 52 unchanged lines hidden (view full) --- 1347 if (p->p_flag & P_TRACED || 1348 (p->p_pgrp->pg_jobc == 0 && 1349 prop & SA_TTYSTOP)) 1350 break; /* == ignore */ 1351 p->p_xstat = sig; 1352 stop(p); 1353 if ((p->p_pptr->p_procsig->ps_flag & PS_NOCLDSTOP) == 0) 1354 psignal(p->p_pptr, SIGCHLD); | 1291 } while (!trace_req(p) 1292 && p->p_flag & P_TRACED); 1293 1294 /* 1295 * If the traced bit got turned off, go back up 1296 * to the top to rescan signals. This ensures 1297 * that p_sig* and ps_sigact are consistent. 1298 */ --- 52 unchanged lines hidden (view full) --- 1351 if (p->p_flag & P_TRACED || 1352 (p->p_pgrp->pg_jobc == 0 && 1353 prop & SA_TTYSTOP)) 1354 break; /* == ignore */ 1355 p->p_xstat = sig; 1356 stop(p); 1357 if ((p->p_pptr->p_procsig->ps_flag & PS_NOCLDSTOP) == 0) 1358 psignal(p->p_pptr, SIGCHLD); |
1359 DROP_GIANT_NOSWITCH(); 1360 mtx_enter(&sched_lock, MTX_SPIN); |
|
1355 mi_switch(); | 1361 mi_switch(); |
1362 mtx_exit(&sched_lock, MTX_SPIN); 1363 PICKUP_GIANT(); |
|
1356 break; 1357 } else if (prop & SA_IGNORE) { 1358 /* 1359 * Except for SIGCONT, shouldn't get here. 1360 * Default action is to ignore; drop it. 1361 */ 1362 break; /* == ignore */ 1363 } else --- 424 unchanged lines hidden --- | 1364 break; 1365 } else if (prop & SA_IGNORE) { 1366 /* 1367 * Except for SIGCONT, shouldn't get here. 1368 * Default action is to ignore; drop it. 1369 */ 1370 break; /* == ignore */ 1371 } else --- 424 unchanged lines hidden --- |