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

Method SendPingsIfNeeded

library/cpp/neh/netliba_udp_http.cpp:538–576  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

536 }
537
538 void SendPingsIfNeeded() {
539 NHPTimer::STime tChk = PingsSendT_;
540 float deltaT = (float)NHPTimer::GetTimePassed(&tChk);
541 if (deltaT < 0.05) {
542 return;
543 }
544 PingsSendT_ = tChk;
545 deltaT = ClampVal(deltaT, 0.0f, HTTP_TIMEOUT / 3);
546
547 {
548 for (TOutRequestHash::iterator i = OutRequests_.begin(); i != OutRequests_.end();) {
549 TOutRequestHash::iterator curIt = i++;
550 TOutRequestState& s = curIt->second;
551 const TGUID& guid = curIt->first;
552 switch (s.State) {
553 case TOutRequestState::S_WAITING:
554 s.TimePassed += deltaT;
555 if (s.TimePassed > HTTP_TIMEOUT) {
556 TAutoPtr<TRopeDataPacket> ms = new TRopeDataPacket;
557 ms->Write((char)PKT_PING);
558 ms->Write(guid);
559 int transId = SendWithHighPriority(s.Address, ms.Release());
560 TransferHash_[transId] = TTransferPurpose(DIR_OUT, guid);
561 s.State = TOutRequestState::S_WAITING_PING_SENDING;
562 s.PingTransferId = transId;
563 }
564 break;
565 case TOutRequestState::S_WAITING_PING_SENT:
566 s.TimePassed += deltaT;
567 if (s.TimePassed > HTTP_TIMEOUT) {
568 FinishRequest(curIt, TUdpHttpResponse::FAILED, nullptr, "request failed: http timeout in state S_WAITING_PING_SENT");
569 }
570 break;
571 default:
572 break;
573 }
574 }
575 }
576 }
577
578 void Step() {
579 {

Callers

nothing calls this directly

Calls 5

TTransferPurposeClass · 0.70
beginMethod · 0.45
endMethod · 0.45
WriteMethod · 0.45
ReleaseMethod · 0.45

Tested by

no test coverage detected