Re: [PATCH] cleanup ptrace stops and remove notify_parent

From: Roland McGrath
Date: Mon Aug 30 2004 - 23:56:32 EST


> Unless it's been changed since I last pulled, you should also fix up
> has_stopped_jobs. I think it's broken by the introduction of
> TASK_TRACED.

Actually, I don't think it was broken at all. It has an old kludge to
avoid considering trace-stopped threads as stopped for purposes of deciding
to generate signals for an orphaned process group. I think that the useful
thing is for it not to consider any TASK_TRACED thread as stopped here either.
That's what it will already do, and the old kludge can go now:

--- linux-2.6-ptracefix/kernel/exit.c.~1~
+++ linux-2.6-ptracefix/kernel/exit.c
@@ -199,17 +199,6 @@ static inline int has_stopped_jobs(int p
for_each_task_pid(pgrp, PIDTYPE_PGID, p, l, pid) {
if (p->state != TASK_STOPPED)
continue;
-
- /* If p is stopped by a debugger on a signal that won't
- stop it, then don't count p as stopped. This isn't
- perfect but it's a good approximation. */
- if (unlikely (p->ptrace)
- && p->exit_code != SIGSTOP
- && p->exit_code != SIGTSTP
- && p->exit_code != SIGTTOU
- && p->exit_code != SIGTTIN)
- continue;
-
retval = 1;
break;
}


Thanks,
Roland
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/