Index: base/process/process_win.cc |
diff --git a/base/process/process_win.cc b/base/process/process_win.cc |
index 8e508a1b1fbaa4496b8ba34cef30bb2903b8cda7..6629f4565a74fb5e019ad05e845feba09f65625e 100644 |
--- a/base/process/process_win.cc |
+++ b/base/process/process_win.cc |
@@ -4,6 +4,7 @@ |
#include "base/process/process.h" |
+#include "base/debug/activity_tracker.h" |
#include "base/logging.h" |
#include "base/numerics/safe_conversions.h" |
#include "base/process/kill.h" |
@@ -142,6 +143,9 @@ bool Process::WaitForExit(int* exit_code) { |
} |
bool Process::WaitForExitWithTimeout(TimeDelta timeout, int* exit_code) { |
+ // Record the event that this thread is blocking upon (for hang diagnosis). |
+ base::debug::ScopedProcessWaitActivity process_activity(this); |
+ |
// Limit timeout to INFINITE. |
DWORD timeout_ms = saturated_cast<DWORD>(timeout.InMilliseconds()); |
if (::WaitForSingleObject(Handle(), timeout_ms) != WAIT_OBJECT_0) |