Comment on attachment 8959924 Bug 336193 - P1: Use SignalPipeWatcher to detect signals SIGTERM/SIGINT/SIGHUP and quit application gracefully.
https://reviewboard.mozilla.org/r/228682/#review235302 > Is the |dispatchQuit| single quit logic necessary? > It looks like nsAppStartup::mShuttingDown already ensures that multiple > Quit() calls will be harmless. > > https://searchfox.org/mozilla-central/rev/b29daa46443b30612415c35be0a3c9c13b9dc5f6/toolkit/components/startup/nsAppStartup.cpp#393 It makes sense that it was designed for handling repeated calls and I can't find any other code that does this extra check so it is indeed redundant. > Why prevent registering callbacks for signals where the old action is SIG_IGN? > > I guessing this is not necessary. I based this off nsProfileLock's CATCH_SIGNAL() which does not register for signal handlers that have already been set to SIG_IGN. I guess the logic is that if some other component has already chosen to ignore the signal then there is probably a good reason for that and we shouldn't interfere. It would also be inconsistent if we treated it like normal, started shutdown and then restored SIG_IGN which would not follow through with killing the process for subsequent termination attempts. It is always possible to change the signal handler to something else before calling RegisterCallback() to get around this if need be. > SIG_DFL is typically 0. > > I assume this is intended to detect when oldAction has not been set, but > mSignalInfo elements are added only when the old action is successfully > retrieved. > > Can this check just be dropped? Yeah this evolved into something bad, check is redundant and SIG_DFL needs to be restorable (oops!). -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/73536 Title: MASTER Firefox crashes on instant X server shutdown To manage notifications about this bug go to: https://bugs.launchpad.net/firefox/+bug/73536/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs