Index: base/process_util_posix.cc |
diff --git a/base/process_util_posix.cc b/base/process_util_posix.cc |
index 9ea0e41e7167b12857b97d641839435e40697dcb..7b49673ba641632f4b0421ec01535060be20e1c6 100644 |
--- a/base/process_util_posix.cc |
+++ b/base/process_util_posix.cc |
@@ -17,6 +17,7 @@ |
#include <limits> |
#include <set> |
+#include "base/allocator/allocated_type_profiler_control.h" |
#include "base/command_line.h" |
#include "base/compiler_specific.h" |
#include "base/debug/debugger.h" |
@@ -639,6 +640,11 @@ bool LaunchProcess(const std::vector<std::string>& argv, |
} |
} |
+ // Stop the profiler for allocated type. |
+ // The profiler should be stopped between fork and exec since it inserts |
+ // locks at new/delete expressions. See http://crbug.com/36678. |
+ base::allocated_type_profiler::StopProfilingAllocatedType(); |
jar (doing other things)
2012/08/27 17:17:13
nit: please shorten this method name to StopProfil
Dai Mikurube (NOT FULLTIME)
2012/08/27 23:52:56
Ok, I'll rename it.
What kind of tests do you wan
Dai Mikurube (NOT FULLTIME)
2012/08/28 09:04:57
Done.
|
+ |
if (options.maximize_rlimits) { |
// Some resource limits need to be maximal in this child. |
std::set<int>::const_iterator resource; |
@@ -1107,6 +1113,11 @@ static GetAppOutputInternalResult GetAppOutputInternal( |
if (dev_null < 0) |
_exit(127); |
+ // Stop the profiler for allocated type. |
+ // The profiler should be stopped between fork and exec since it inserts |
+ // locks at new/delete expressions. See http://crbug.com/36678. |
+ base::allocated_type_profiler::StopProfilingAllocatedType(); |
+ |
fd_shuffle1.push_back(InjectionArc(pipe_fd[1], STDOUT_FILENO, true)); |
fd_shuffle1.push_back(InjectionArc(dev_null, STDERR_FILENO, true)); |
fd_shuffle1.push_back(InjectionArc(dev_null, STDIN_FILENO, true)); |