diff options
author | jhb <jhb@FreeBSD.org> | 2001-03-28 11:52:56 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2001-03-28 11:52:56 +0000 |
commit | 79cf991a6bd845fad54bd6a15892cb5aaf74b223 (patch) | |
tree | 1cee6a483c3c79f058207ee2c66c63c38f2ad20a /sys/kern/sys_process.c | |
parent | 673f3af133009642ca79479ec4db4a25a4ea86d6 (diff) | |
download | FreeBSD-src-79cf991a6bd845fad54bd6a15892cb5aaf74b223.zip FreeBSD-src-79cf991a6bd845fad54bd6a15892cb5aaf74b223.tar.gz |
Convert the allproc and proctree locks from lockmgr locks to sx locks.
Diffstat (limited to 'sys/kern/sys_process.c')
-rw-r--r-- | sys/kern/sys_process.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index a0efa6f..4255c14 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -37,6 +37,7 @@ #include <sys/proc.h> #include <sys/vnode.h> #include <sys/ptrace.h> +#include <sys/sx.h> #include <machine/reg.h> #include <vm/vm.h> @@ -320,24 +321,24 @@ ptrace(curp, uap) switch (uap->req) { case PT_TRACE_ME: /* set my trace flag and "owner" so it can read/write me */ - PROCTREE_LOCK(PT_EXCLUSIVE); + sx_xlock(&proctree_lock); PROC_LOCK(p); p->p_flag |= P_TRACED; p->p_oppid = p->p_pptr->p_pid; PROC_UNLOCK(p); - PROCTREE_LOCK(PT_RELEASE); + sx_xunlock(&proctree_lock); return 0; case PT_ATTACH: /* security check done above */ - PROCTREE_LOCK(PT_EXCLUSIVE); + sx_xlock(&proctree_lock); PROC_LOCK(p); p->p_flag |= P_TRACED; p->p_oppid = p->p_pptr->p_pid; if (p->p_pptr != curp) proc_reparent(p, curp); PROC_UNLOCK(p); - PROCTREE_LOCK(PT_RELEASE); + sx_xunlock(&proctree_lock); uap->data = SIGSTOP; goto sendsig; /* in PT_CONTINUE below */ @@ -368,7 +369,7 @@ ptrace(curp, uap) if (uap->req == PT_DETACH) { /* reset process parent */ - PROCTREE_LOCK(PT_EXCLUSIVE); + sx_xlock(&proctree_lock); if (p->p_oppid != p->p_pptr->p_pid) { struct proc *pp; @@ -381,7 +382,7 @@ ptrace(curp, uap) p->p_oppid = 0; PROC_UNLOCK(p); - PROCTREE_LOCK(PT_RELEASE); + sx_xunlock(&proctree_lock); /* should we send SIGCHLD? */ |