Hi List, The pfind(..) (in kern_proc.c) function below returns the proc structure for the PID passed in
Say the thread that calls pfind() gets blocked at PROC_LOCK(p) (line 255 below), in the meantime what prevents the process from exiting and deallocating the proc structure ? Maybe I am missing something simple or the answer requires knowledge of the mutex implementation. Thanks, Nikhil 242 struct proc * 243 pfind(pid) 244 register pid_t pid; 245 { 246 register struct proc *p; 247 248 sx_slock(&allproc_lock); 249 LIST_FOREACH(p, PIDHASH(pid), p_hash) 250 if (p->p_pid == pid) { 251 if (p->p_state == PRS_NEW) { 252 p = NULL; 253 break; 254 } 255 PROC_LOCK(p); 256 break; 257 } 258 sx_sunlock(&allproc_lock); 259 return (p); 260 } _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"