[lkml]   [2011]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: waitpid(WNOHANG) should report SIGCHLD-notified signals [Re: [PATCH 09/11] job control: reorganize wait_task_stopped()]
Hi Tejun,

On Sun, 15 May 2011 18:47:05 +0200, Tejun Heo wrote:
> Hmmm... I could easily be wrong but AFAICS that shouldn't happen. If
> you can reproduce the problem, please let us know.

I was unable to reproduce it before so OK, I will follow now your statement.

> > But if it is a case it should be fixed as there is no later notification when
> > to call waitpid(WNOHANG) again. And sure the debugger cannot busy-loop poll
> > it.
> But, the current WNOHANG wait is racy. It's unlikely but definitely
> possible for WNOHANG to fail when it's expected to succeed (not the
> above case but more convoluted ones).

OK, so FYI it breaks current GDB.

> But, just out of curiosity, is there any reason the ptracer itself
> should be doing something other than waitpid() while tracee is
> running? It's not like ptrace requests can be issued during that time
> and sleeping waitpid() is way saner mechanism to wait for tracee
> events than signal.

If the debugger wants to be single-threaded ("poll() model", not "threads
model") and it wants to communicate with user and examine debuggee symbols and
memory data it cannot use sleeping wait. GDB is single-threaded and it
supports `set target-async 1': info '(gdb)Background Execution'


 \ /
  Last update: 2011-05-15 19:49    [W:0.088 / U:3.236 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site