Messages in this thread |  | | Date | Sat, 29 Mar 2008 13:39:29 +0300 | | From | Oleg Nesterov <> | | Subject | Re: [PATCH 2/2] ptrace children revamp |
| |
I didn't read the patch yet (will do), just a minor nit right now,
On 03/28, Roland McGrath wrote: > > @@ -1528,19 +1534,11 @@ static int do_wait_thread(struct task_struct *tsk, int *retval, > return 1; > } > > - /* > - * If we never saw an eligile child, check for children stolen by > - * ptrace. We don't leave -ECHILD in *@retval if there are any, > - * because we will eventually be allowed to wait for them again. > - */ > - if (*retval) > - list_for_each_entry(p, &tsk->ptrace_children, ptrace_list) { > - int ret = eligible_child(type, pid, options, p); > - if (ret) { > - *retval = unlikely(ret < 0) ? ret : 0; > - break; > - } > - } > + list_for_each_entry(p, &tsk->ptrace_attach, ptrace_list) { > + if (wait_consider_task(tsk, p, retval, type, pid, options, > + infop, stat_addr, ru)) > + return 1; > + }
Afaics, this adds a minor pessimization. We shouldn't scan ->ptrace_attach list if it was already found that another thread has a "hidden" task.
Oleg.
|  |