__kill_pg_info(SIGHUP, (void *)1, pgrp); __kill_pg_info(SIGCONT, (void *)1, pgrp);
__kill_pg_info(SIGHUP, SEND_SIG_PRIV, pgrp); __kill_pg_info(SIGCONT, SEND_SIG_PRIV, pgrp);
static inline void reparent_thread(task_t *p, task_t *father, int traced){	/* We don't want people slaying init.  */	if (p->exit_signal != -1)		p->exit_signal = SIGCHLD;	if (p->pdeath_signal)		/* We already hold the tasklist_lock here.  */		group_send_sig_info(p->pdeath_signal, (void *) 0, p);	/* Move the child from its dying parent to the new one.  */	if (unlikely(traced)) {		/* Preserve ptrace links if someone else is tracing this child.  */		list_del_init(&p->ptrace_list);		if (p->parent != p->real_parent)			list_add(&p->ptrace_list, &p->real_parent->ptrace_children);	} else {		/* If this child is being traced, then we're the one tracing it		 * anyway, so let go of it.		 */		p->ptrace = 0;		list_del_init(&p->sibling);		p->parent = p->real_parent;		list_add_tail(&p->sibling, &p->parent->children);		/* If we'd notified the old parent about this child's death,		 * also notify the new parent.		 */		if (p->exit_state == EXIT_ZOMBIE && p->exit_signal != -1 &&		    thread_group_empty(p))			do_notify_parent(p, p->exit_signal);		else if (p->state == TASK_TRACED) {			/*			 * If it was at a trace stop, turn it into			 * a normal stop since it's no longer being			 * traced.			 */			ptrace_untrace(p);		}	}	/*	 * process group orphan check	 * Case ii: Our child is in a different pgrp	 * than we are, and it was the only connection	 * outside, so the child pgrp is now orphaned.	 */	if ((process_group(p) != process_group(father)) &&	    (p->signal->session == father->signal->session)) {		int pgrp = process_group(p);		if (will_become_orphaned_pgrp(pgrp, NULL) && has_stopped_jobs(pgrp)) {			__kill_pg_info(SIGHUP, (void *)1, pgrp);			__kill_pg_info(SIGCONT, (void *)1, pgrp);		}	}}