| Index: content/child/child_thread.cc
|
| diff --git a/content/child/child_thread.cc b/content/child/child_thread.cc
|
| index f5061bfe16c5432c278bcd7bc0b3f0d4a751b52b..6eba0c83ede89f9208f3c9a259fa1c2d79e1b3f4 100644
|
| --- a/content/child/child_thread.cc
|
| +++ b/content/child/child_thread.cc
|
| @@ -75,7 +75,11 @@ class SuicideOnChannelErrorFilter : public IPC::ChannelProxy::MessageFilter {
|
| // handlers. SIGALRM has a default disposition of terminating the
|
| // application.
|
| if (CommandLine::ForCurrentProcess()->HasSwitch(switches::kChildCleanExit))
|
| - alarm(30);
|
| + // FIXME(asharif): This is wrong code. We cannot call exit() in a
|
| + // multi-threaded environment. However, simply having a return statement
|
| + // here causes a deadlock or abort because of the same thread tries to
|
| + // acquire the same lock twice. See: crbug.com/263594
|
| + exit(0);
|
| else
|
| _exit(0);
|
| }
|
|
|