Bug 1050122 - Part 1: Enable Nuwa on debug builds, and kill it if the preference is false. r=khuey

This commit is contained in:
Ting-Yu Chou 2014-10-31 15:07:43 +08:00
parent 1c31f00365
commit 4f77c2c332
3 changed files with 16 additions and 2 deletions

View File

@ -219,6 +219,13 @@ RunProcesses(int argc, const char *argv[], FdArray& aReservedFds)
aReservedFds); aReservedFds);
} }
// Reap zombie child process.
struct sigaction sa;
sa.sa_handler = SIG_IGN;
sigemptyset(&sa.sa_mask);
sa.sa_flags = 0;
sigaction(SIGCHLD, &sa, nullptr);
// The b2g process // The b2g process
int childPid = pid; int childPid = pid;
XRE_ProcLoaderClientInit(childPid, parentSock, aReservedFds); XRE_ProcLoaderClientInit(childPid, parentSock, aReservedFds);

View File

@ -800,13 +800,11 @@ pref("hal.processPriorityManager.gonk.notifyLowMemUnderKB", 14336);
// blocked on a poll(), and this pref has no effect.) // blocked on a poll(), and this pref has no effect.)
pref("gonk.systemMemoryPressureRecoveryPollMS", 5000); pref("gonk.systemMemoryPressureRecoveryPollMS", 5000);
#ifndef DEBUG
// Enable pre-launching content processes for improved startup time // Enable pre-launching content processes for improved startup time
// (hiding latency). // (hiding latency).
pref("dom.ipc.processPrelaunch.enabled", true); pref("dom.ipc.processPrelaunch.enabled", true);
// Wait this long before pre-launching a new subprocess. // Wait this long before pre-launching a new subprocess.
pref("dom.ipc.processPrelaunch.delayMs", 5000); pref("dom.ipc.processPrelaunch.delayMs", 5000);
#endif
pref("dom.ipc.reuse_parent_app", false); pref("dom.ipc.reuse_parent_app", false);

View File

@ -31,6 +31,7 @@
#include "mozilla/unused.h" #include "mozilla/unused.h"
#include "base/process_util.h" #include "base/process_util.h"
#include "base/eintr_wrapper.h" #include "base/eintr_wrapper.h"
#include "mozilla/Preferences.h"
#include "prenv.h" #include "prenv.h"
@ -204,6 +205,14 @@ ProcLoaderClientGeckoInit()
MOZ_ASSERT(!sProcLoaderClientGeckoInitialized, MOZ_ASSERT(!sProcLoaderClientGeckoInitialized,
"call ProcLoaderClientGeckoInit() more than once"); "call ProcLoaderClientGeckoInit() more than once");
if (!Preferences::GetBool("dom.ipc.processPrelaunch.enabled", false)) {
kill(sProcLoaderPid, SIGKILL);
sProcLoaderPid = 0;
close(sProcLoaderChannelFd);
sProcLoaderChannelFd = -1;
return;
}
sProcLoaderClientGeckoInitialized = true; sProcLoaderClientGeckoInitialized = true;
TransportDescriptor fd; TransportDescriptor fd;