[go: nahoru, domu]

Synchronize the parent and child processes during launch, ensuring that the
child doesn't try to check in with the Mach broker before the parent is ready.
This resolves a race between the browser and its child processes.

base::LaunchOptions gets a new member, synchronize, currently Mac-only
although there's nothing Mac-specific about the implementation. When set,
it allows base::LaunchProcess clients to request that the child process block
until released by the new base::LaunchSynchronize call. When creating child
processes, the child process launcher now requests this new synchronization
behavior to give it a chance to set up the Mach broker to expect the child
before the child tries to check in with it.

BUG=94295
TEST=Chrome should work. You see fewer of this logged:
     Unknown process (pid) is sending Mach IPC messages!
     But you still might see some of these due to bug 94543.
Review URL: http://codereview.chromium.org/7740036

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99245 0039d316-1c4b-4281-b951-d872f2087c98
6 files changed