[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Async processes started in functions not reliably started

From: Steffen Nurpmeso
Subject: Re: Async processes started in functions not reliably started
Date: Wed, 07 Aug 2019 21:34:02 +0200
User-agent: s-nail v14.9.14-9-g0a0ff75e


Steffen Nurpmeso wrote in <address@hidden>:
 |Robert Elz wrote in <address@hidden>:
 ||    Date:        Mon, 05 Aug 2019 14:05:43 +0200
 ||    From:        Steffen Nurpmeso <address@hidden>
 ||    Message-ID:  <address@hidden>
 ||The shell cannot really know - your example was not functional until
 ||after it set up the traps.
 ||In the parent:
 || OK=false
 || T=$(trap -p USR2)            # only needed if USR2 might be trapped \
 || already
 || trap 'OK=true' USR2
 ||In the child:
 || trap 'whatever' SIG_I_NEED
 || # any other init that is needed
 || kill -s USR2 $$      # or if the parent pid is not $$, use whatever is.
 ||No temp files, named pipes, or othe similar stateful mechanisms needed.

Sorry for all that noise once again, but i have then rewritten it
using mkfifo etc. with credits for some of you (which collects
things i have seen flying by since Saturday night):

    They also came up with the solution: do not wait(1) on child
    processes until we know about their state, so that anytime before we
    actually do wait(1) we can safely kill(1) them (Jilles Tjoelker).
    Thus, let's create a FIFO (Chet Ramey) to get a synchronized
    device, strip the wild test undertaker to a core that only writes
    "timeout" to that FIFO, and also improve its startup-is-completed to
    simply send a signal to the parent process (Robert Elz).  So
    either the tests finish nicely, in which case they write their job
    number to the fifo, or we see "timeout" and kill all remains.
    There is still a minimal race which would falsely report tests as
    failures, but should do no other harm.


|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]