Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: src/shared/Communication.cpp

Issue 10973008: Make tabs hang less (Closed)
Patch Set: Created June 13, 2013, 9:03 a.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/plugin/AdblockPlusClient.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #include <Windows.h> 1 #include <Windows.h>
2 #include <Lmcons.h> 2 #include <Lmcons.h>
3 #include <Sddl.h> 3 #include <Sddl.h>
4 4
5 #include "Communication.h" 5 #include "Communication.h"
6 #include "Utils.h" 6 #include "Utils.h"
7 7
8 namespace 8 namespace
9 { 9 {
10 const int bufferSize = 1024; 10 const int bufferSize = 1024;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 if (IsWindowsVistaOrLater() && securitydescriptor) 79 if (IsWindowsVistaOrLater() && securitydescriptor)
80 { 80 {
81 LocalFree(securitydescriptor); 81 LocalFree(securitydescriptor);
82 } 82 }
83 } 83 }
84 else 84 else
85 { 85 {
86 pipe = CreateFileW(pipeName.c_str(), GENERIC_READ | GENERIC_WRITE, 0, 0, OPE N_EXISTING, 0, 0); 86 pipe = CreateFileW(pipeName.c_str(), GENERIC_READ | GENERIC_WRITE, 0, 0, OPE N_EXISTING, 0, 0);
87 if (pipe == INVALID_HANDLE_VALUE && GetLastError() == ERROR_PIPE_BUSY) 87 if (pipe == INVALID_HANDLE_VALUE && GetLastError() == ERROR_PIPE_BUSY)
88 { 88 {
89 if (!WaitNamedPipeW(pipeName.c_str(), 5000)) 89 if (!WaitNamedPipeW(pipeName.c_str(), 10000))
90 throw PipeBusyError(); 90 throw PipeBusyError();
91 91
92 pipe = CreateFileW(pipeName.c_str(), GENERIC_READ | GENERIC_WRITE, 0, 0, O PEN_EXISTING, 0, 0); 92 pipe = CreateFileW(pipeName.c_str(), GENERIC_READ | GENERIC_WRITE, 0, 0, O PEN_EXISTING, 0, 0);
93 } 93 }
94 } 94 }
95 95
96 if (pipe == INVALID_HANDLE_VALUE) 96 if (pipe == INVALID_HANDLE_VALUE)
97 throw PipeConnectionError(); 97 throw PipeConnectionError();
98 98
99 DWORD pipeMode = PIPE_READMODE_MESSAGE | PIPE_WAIT; 99 DWORD pipeMode = PIPE_READMODE_MESSAGE | PIPE_WAIT;
(...skipping 30 matching lines...) Expand all
130 return Communication::InputBuffer(stream.str()); 130 return Communication::InputBuffer(stream.str());
131 } 131 }
132 132
133 void Communication::Pipe::WriteMessage(Communication::OutputBuffer& message) 133 void Communication::Pipe::WriteMessage(Communication::OutputBuffer& message)
134 { 134 {
135 DWORD bytesWritten; 135 DWORD bytesWritten;
136 std::string data = message.Get(); 136 std::string data = message.Get();
137 if (!WriteFile(pipe, data.c_str(), data.length(), &bytesWritten, 0)) 137 if (!WriteFile(pipe, data.c_str(), data.length(), &bytesWritten, 0))
138 throw std::runtime_error("Failed to write to pipe"); 138 throw std::runtime_error("Failed to write to pipe");
139 } 139 }
OLDNEW
« no previous file with comments | « src/plugin/AdblockPlusClient.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld