> right before we do something that might "take a long time". Or "right before we do something that could change disk state".
On Mon, Jul 10, 2017 at 11:29 AM, Paul D. Smith <invalid.nore...@gnu.org> wrote: > Follow-up Comment #6, bug #51237 (project make): > > It's not the exact same problem but it's caused by the same flaw in the > make > code: doing lots of work in a signal handler. > > What I was hoping to do is change the signal handler to do nothing more > than > set a flag saying that the fatal signal was received, and move all the > "stuff" > into a separate function that is not a signal handler. > > There are lots of issues with having significant work done in a signal > handler. Another bug I just fixed this past weekend is to correct > blocking/unblocking fatal signals, which we need to do only because the > signal > handler is mucking about with the child lists. > > Then it becomes the responsibility of the mainline code to check the fatal > flag at various times and call the "do fatal stuff" function when it sees > the > flag is set. > > The question of course is, what are the correct "various times". We can > probably make some fairly good guesses: right before we do something that > might "take a long time". > > I guess the real problem is the same one that led to lots of issues with > the > jobserver: even if we check immediately before we start to wait for child > to > finish the signal could be received in the instant between when we check > and > we drop into the wait, and we would have to wait for the child to exit > before > we'd notice the fatal signal. I'll have to think about that. > > _______________________________________________________ > > Reply to this item at: > > <http://savannah.gnu.org/bugs/?51237> > > _______________________________________________ > Message sent via/by Savannah > http://savannah.gnu.org/ > > > _______________________________________________ > Bug-make mailing list > Bug-make@gnu.org > https://lists.gnu.org/mailman/listinfo/bug-make >
_______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make