Messages in this thread |  | | Date | Thu, 12 May 2011 20:33:26 +0200 | | From | Oleg Nesterov <> | | Subject | Re: [PATCH 09/11] job control: reorganize wait_task_stopped() |
| |
On 05/12, Tejun Heo wrote: > > int main(int argc, char **argv) > { > pid_t child, control; > > child = fork(); > if (!child) > while (1) > pause(); > > kill(child, SIGSTOP); > waitid(P_PID, child, NULL, WSTOPPED | WNOWAIT); > > control = fork(); > if (!control) { > while (1) { > kill(child, SIGCONT); > nanosleep(&ts1ms, NULL); > kill(child, SIGSTOP); > nanosleep(&ts1ms, NULL);
Damn, you are right, I think.
At first glance, do_wait() does
wait_task_stopped(); wait_task_continued();
and the state can be changed CONTINIUED -> STOPPED in between, right? Or something else?
Thanks, for the explanation.
Oleg.
|  |