[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Parallelism a la make -j <n> / GNU parallel
From: |
Mike Frysinger |
Subject: |
Re: Parallelism a la make -j <n> / GNU parallel |
Date: |
Sun, 6 May 2012 02:28:26 -0400 |
User-agent: |
KMail/1.13.7 (Linux/3.3.4; KDE/4.6.5; x86_64; ; ) |
On Saturday 05 May 2012 23:25:26 John Kearney wrote:
> Am 05.05.2012 06:28, schrieb Mike Frysinger:
> > On Friday 04 May 2012 16:17:02 Chet Ramey wrote:
> >> On 5/4/12 2:53 PM, Mike Frysinger wrote:
> >>> it might be a little racy (wrt checking cnt >= 10 and then doing a
> >>> wait), but this is good enough for some things. it does lose
> >>> visibility into which pids are live vs reaped, and their exit status,
> >>> but i more often don't care about that ...
> >>
> >> What version of bash did you test this on? Bash-4.0 is a little
> >> different in how it treats the SIGCHLD trap.
> >
> > bash-4.2_p28. wait returns 145 (which is SIGCHLD).
> >
> >> Would it be useful for bash to set a shell variable to the PID of the
> >> just- reaped process that caused the SIGCHLD trap? That way you could
> >> keep an array of PIDs and, if you wanted, use that variable to keep
> >> track of live and dead children.
> >
> > we've got associative arrays now ... we could have one which contains all
> > the relevant info:
> > declare -A BASH_CHILD_STATUS=(
> > ["pid"]=1234
> > ["status"]=1 # WEXITSTATUS()
> > ["signal"]=13 # WTERMSIG()
> > )
> >
> > makes it easy to add any other fields people might care about ...
>
> Is there actually a guarantee that there will be 1 SIGCHLD for every
> exited process.
> Isn't it actually a race condition?
when SIGCHLD is delivered doesn't matter. the child stays in a zombie state
until the parent calls wait() on it and gets its status. so you can have
`wait` return one child's status at a time.
-mike
signature.asc
Description: This is a digitally signed message part.
- Re: Parallelism a la make -j <n> / GNU parallel, (continued)
- Re: Parallelism a la make -j <n> / GNU parallel, John Kearney, 2012/05/05
- Re: Parallelism a la make -j <n> / GNU parallel, Mike Frysinger, 2012/05/06
- Re: Parallelism a la make -j <n> / GNU parallel, John Kearney, 2012/05/06
- Re: Parallelism a la make -j <n> / GNU parallel, Chet Ramey, 2012/05/04
- Re: Parallelism a la make -j <n> / GNU parallel, Mike Frysinger, 2012/05/05
- Re: Parallelism a la make -j <n> / GNU parallel, John Kearney, 2012/05/05
- Re: Parallelism a la make -j <n> / GNU parallel,
Mike Frysinger <=
- Re: Parallelism a la make -j <n> / GNU parallel, John Kearney, 2012/05/06
- Re: Parallelism a la make -j <n> / GNU parallel, Mike Frysinger, 2012/05/06
- Re: Parallelism a la make -j <n> / GNU parallel, Chet Ramey, 2012/05/07
- Re: Parallelism a la make -j <n> / GNU parallel, Chet Ramey, 2012/05/07
- Re: Parallelism a la make -j <n> / GNU parallel, Chet Ramey, 2012/05/07
- Re: Parallelism a la make -j <n> / GNU parallel, Mike Frysinger, 2012/05/11
Re: Parallelism a la make -j <n> / GNU parallel, Ben Pfaff, 2012/05/05
Re: Parallelism a la make -j <n> / GNU parallel, Ole Tange, 2012/05/11