Index: base/process_util_posix.cc |
=================================================================== |
--- base/process_util_posix.cc (revision 49343) |
+++ base/process_util_posix.cc (working copy) |
@@ -1,4 +1,4 @@ |
-// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. |
+// Copyright (c) 2010 The Chromium Authors. All rights reserved. |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
@@ -159,6 +159,15 @@ |
exited = true; |
break; |
} |
+ if (pid == -1) { |
+ if (errno == ECHILD) { |
+ // The wait may fail with ECHILD if another process also waited for |
+ // the same pid, causing the process state to get cleaned up. |
+ exited = true; |
+ break; |
+ } |
+ DPLOG(ERROR) << "Error waiting for process " << process_id; |
+ } |
sleep(1); |
} |