Print this page
OS-4937 lxbrand ptracer count updates can race
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Joshua M. Clulow <jmc@joyent.com>
OS-2834 ship lx brand

*** 19,28 **** --- 19,29 ---- * CDDL HEADER END */ /* * Copyright (c) 1989, 2010, Oracle and/or its affiliates. All rights reserved. + * Copyright 2015 Joyent, Inc. */ /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */ /* All Rights Reserved */
*** 110,119 **** --- 111,132 ---- } } return (pidp); } + struct pid * + pid_find(pid_t pid) + { + struct pid *pidp; + + mutex_enter(&pidlinklock); + pidp = pid_lookup(pid); + mutex_exit(&pidlinklock); + + return (pidp); + } + void pid_setmin(void) { if (jump_pid && jump_pid > mpid) minpid = mpid = jump_pid;
*** 519,528 **** --- 532,555 ---- cv_signal(&pr_pid_cv[p->p_slot]); p->p_proc_flag &= ~P_PR_LOCK; mutex_exit(&p->p_lock); THREAD_KPRI_RELEASE(); } + + /* + * Undo effects of sprlock but without dropping p->p_lock + */ + void + sprunprlock(proc_t *p) + { + ASSERT(p->p_proc_flag & P_PR_LOCK); + ASSERT(MUTEX_HELD(&p->p_lock)); + + cv_signal(&pr_pid_cv[p->p_slot]); + p->p_proc_flag &= ~P_PR_LOCK; + THREAD_KPRI_RELEASE(); + } void pid_init(void) { int i;