MCPcopy Create free account
hub / github.com/catboost/catboost / DoExecute

Method DoExecute

library/cpp/neh/multiclient_ut.cpp:143–196  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

141
142 private:
143 void DoExecute() override {
144 try {
145 size_t evNum = 0;
146 IMultiClient::TEvent ev;
147 while (MC_.Wait(ev)) {
148 Cdbg << "ev.Type = " << int(ev.Type) << Endl;
149 if (ev.Type == IMultiClient::TEvent::Response) {
150 TResponseRef resp = ev.Hndl->Get();
151 if (!!resp) {
152 Cdbg << "Request = " << resp->Request.Addr << ": " << resp->Request.Data << Endl;
153 if (resp->IsError()) {
154 Cdbg << "ErrorResponse = " << resp->GetErrorText() << Endl;
155 } else {
156 Cdbg << "Response = " << resp->Data << Endl;
157 }
158 }
159 } else {
160 Cdbg << "Timeout" << Endl;
161 }
162 Sleep(TDuration::MilliSeconds(5));
163 if (!ev.UserData) {
164 Error << "unexpected event";
165 return;
166 }
167 TStringBuf userData((const char*)ev.UserData);
168 if (userData.EndsWith('t')) {
169 if (ev.Type != IMultiClient::TEvent::Timeout) {
170 Error << "expect event timeout " << evNum << ", but have: " << userData;
171 return;
172 }
173 userData.Chop(1);
174 } else {
175 if (ev.Type != IMultiClient::TEvent::Response) {
176 Error << "expect event response " << evNum << ", but have: " << userData;
177 return;
178 }
179 }
180 size_t recEv = FromString<size_t>(userData);
181 if (recEv != evNum) {
182 Error << "expect event num " << evNum << ", but have: " << recEv;
183 return;
184 }
185 ++evNum;
186 ev.UserData = nullptr;
187 }
188 Cdbg << "Interrupted" << Endl;
189 if (evNum != 5) {
190 Error << "receive not all events - expect next event: " << evNum;
191 return;
192 }
193 } catch (...) {
194 Error << CurrentExceptionMessage();
195 }
196 }
197
198 public:
199 TStringStream Error;

Callers

nothing calls this directly

Calls 9

SleepFunction · 0.85
MilliSecondsFunction · 0.85
CurrentExceptionMessageFunction · 0.85
GetErrorTextMethod · 0.80
ChopMethod · 0.80
WaitMethod · 0.45
GetMethod · 0.45
IsErrorMethod · 0.45
EndsWithMethod · 0.45

Tested by

no test coverage detected