if (stop_count < 0 || (current->ptrace & PT_PTRACED)) { read_lock(&tasklist_lock); do_notify_parent_cldstop(current, current->parent, CLD_STOPPED); read_unlock(&tasklist_lock); } else if (stop_count == 0) { read_lock(&tasklist_lock); do_notify_parent_cldstop(current->group_leader, current->group_leader->real_parent, CLD_STOPPED); read_unlock(&tasklist_lock); } 
if (stop_count < 0 || (current->ptrace & PT_PTRACED)) to_self = 1; else if (stop_count == 0) to_self = 0; else goto out; 
finish_stop(int stop_count){	/*	 * If there are no other threads in the group, or if there is	 * a group stop in progress and we are the last to stop,	 * report to the parent.  When ptraced, every thread reports itself.	 */	if (stop_count < 0 || (current->ptrace & PT_PTRACED)) {		read_lock(&tasklist_lock);		do_notify_parent_cldstop(current, current->parent,					 CLD_STOPPED);		read_unlock(&tasklist_lock);	}	else if (stop_count == 0) {		read_lock(&tasklist_lock);		do_notify_parent_cldstop(current->group_leader,					 current->group_leader->real_parent,					 CLD_STOPPED);		read_unlock(&tasklist_lock);	}	schedule();	/*	 * Now we don't run again until continued.	 */	current->exit_code = 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/bc505a478d3fffcfb269b72f64df4510305cfe81/signal.c/clean/kernel/signal.c