Reviewers: Mark Mentovai
CL:
https://codereview.chromium.org/1409693011/
Description:
win: Only retry in UseHandler() loop on ERROR_PIPE_BUSY
This is better because now end_to_end_test.py fails immediately with
[1180:9020:20151106,145204.830:ERROR registration_protocol_win.cc:39]
CreateFile: The system cannot find the file specified. (0x2)
R=
ma...@chromium.org
BUG=crashpad:75
Base URL:
https://chromium.googlesource.com/crashpad/crashpad@master
Affected files (+9, -1 lines):
M util/win/registration_protocol_win.cc
Index: util/win/registration_protocol_win.cc
diff --git a/util/win/registration_protocol_win.cc
b/util/win/registration_protocol_win.cc
index
3e0fdf213985a4bc81ae295bd3377140463045da..09c7f941e6146332e6ebd3ad7d520c2007bda6f8
100644
--- a/util/win/registration_protocol_win.cc
+++ b/util/win/registration_protocol_win.cc
@@ -35,7 +35,15 @@ bool SendToCrashHandlerServer(const base::string16&
pipe_name,
SECURITY_SQOS_PRESENT | SECURITY_IDENTIFICATION,
nullptr));
if (!pipe.is_valid()) {
- Sleep(10);
+ if (GetLastError() != ERROR_PIPE_BUSY) {
+ PLOG(ERROR) << "CreateFile";
+ return false;
+ }
+
+ if (!WaitNamedPipe(pipe_name.c_str(), 1000)) {
+ PLOG(ERROR) << "WaitNamedPipe";
+ return false;
+ }
--tries;
continue;
}