MCPcopy Create free account
hub / github.com/Tencent/mars / InstallMessageHandler

Function InstallMessageHandler

mars/comm/messagequeue/message_queue.cc:294–309  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

292}
293
294MessageHandler_t InstallMessageHandler(const MessageHandler& _handler, bool _recvbroadcast, const MessageQueue_t& _messagequeueid) {
295 ASSERT(bool(_handler));
296
297 ScopedLock lock(sg_messagequeue_map_mutex);
298 const MessageQueue_t& id = _messagequeueid;
299
300 std::map<MessageQueue_t, MessageQueueContent>::iterator pos = sg_messagequeue_map.find(id);
301 if (sg_messagequeue_map.end() == pos) {
302 ASSERT2(false, "%llu", (unsigned long long)id);
303 return KNullHandler;
304 }
305
306 HandlerWrapper* handler = new HandlerWrapper(_handler, _recvbroadcast, _messagequeueid, __MakeSeq());
307 pos->second.lst_handler.push_back(handler);
308 return handler->reg;
309}
310
311void UnInstallMessageHandler(const MessageHandler_t& _handlerid) {
312 ASSERT(0 != _handlerid.queue);

Callers 2

AlarmMethod · 0.85
InstallAsyncHandlerFunction · 0.85

Calls 4

__MakeSeqFunction · 0.85
findMethod · 0.45
endMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected