From cd134fbefbadf1e3e1923a18a345d4813f39fea3 Mon Sep 17 00:00:00 2001 From: Patrick Mooney Date: Fri, 6 Nov 2015 19:01:13 +0000 Subject: OS-4937 lxbrand ptracer count updates can race Reviewed by: Jerry Jelinek Reviewed by: Joshua M. Clulow --- usr/src/uts/common/os/pid.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'usr/src/uts/common/os/pid.c') diff --git a/usr/src/uts/common/os/pid.c b/usr/src/uts/common/os/pid.c index 39db5cb27d..eba6147fab 100644 --- a/usr/src/uts/common/os/pid.c +++ b/usr/src/uts/common/os/pid.c @@ -21,6 +21,7 @@ /* * 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 */ @@ -534,6 +535,20 @@ sprunlock(proc_t *p) 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) { -- cgit v1.2.3