void MessageQueue::finish() { if (!_parId) return; MessageQueue *mq = g_fullpipe->_globalMessageQueueList->getMessageQueueById(_parId); _parId = 0; if (!mq) return; if (!_flag1) { mq->update(); return; } mq->_counter--; if (!mq->_counter && !mq->_exCommands.size()) mq->update(); }
bool ExCommand::handleMessage() { int cnt = 0; for (MessageHandler *m = g_fullpipe->_messageHandlers; m; m = m->nextItem) cnt += m->callback(this); if (_messageKind == 17 || (_excFlags & 1)) { if (_parId) { MessageQueue *mq = g_fullpipe->_globalMessageQueueList->getMessageQueueById(_parId); if (mq) mq->update(); } } if (_excFlags & 2) delete this; return (cnt > 0); }
void updateGlobalMessageQueue(int id, int objid) { MessageQueue *m = g_fullpipe->_globalMessageQueueList->getMessageQueueById(id); if (m) { m->update(); } }