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

Method DequeueAndRun

library/cpp/netliba/v12/udp_host.cpp:301–325  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

299 }
300
301 void DequeueAndRun() {
302 std::pair<ETXUserCmd, void*> cmdPair;
303 while (Queue.Dequeue(cmdPair)) {
304 const ETXUserCmd cmdId = cmdPair.first;
305 switch (cmdId) {
306 case ETXUserCmd::TXUC_CONNECT: {
307 TConnection* connection = reinterpret_cast<TConnection*>(cmdPair.second);
308 ConnectCb(connection);
309 } break;
310 case ETXUserCmd::TXUC_SEND: {
311 const TSendCmd* sendCmd = reinterpret_cast<const TSendCmd*>(cmdPair.second);
312 SendCb(sendCmd->Transfer, sendCmd->Data, sendCmd->Pp, sendCmd->Tos, sendCmd->NetlibaColor);
313 delete sendCmd;
314 } break;
315 case ETXUserCmd::TXUC_CANCEL: {
316 const TCancelCmd* cancelCmd = reinterpret_cast<const TCancelCmd*>(cmdPair.second);
317 CancelCb(cancelCmd->Transfer);
318 delete cancelCmd;
319 } break;
320 default:
321 Y_ABORT_UNLESS(false);
322 break;
323 }
324 }
325 }
326
327 private:
328 NThreading::TOneOneQueue<std::pair<ETXUserCmd, void*>> Queue;

Callers 1

StepLowMethod · 0.80

Calls 1

DequeueMethod · 0.45

Tested by

no test coverage detected