В моем проекте у меня есть следующий фрагмент кода
if(strcmp(msg->getName(),"failedAck") == 0 || ......)
{
msg->removeControlInfo();
msg->setControlInfo(info);
recvControls++;
sendDirect(msg, table, "ackIn");
}
По сути, сообщение достигает своего конечного пункта назначения (давайте назовем его A*), и если это тип указанных сообщений, оно отправляется другому модулю (B*), который использует информацию, которую он несет, для выполнения операции.
Проблема, с которой я сталкиваюсь, заключается в том, что после отправки сообщения другому B * я удаляю сообщение после того, как закончу его использовать. Однако он по-прежнему отображается как часть A *, когда я смотрю в инспекторе. И когда я пытаюсь удалить сообщение в A *, я получаю сообщение об ошибке, в котором говорится, что сообщение не может быть удалено, потому что оно в настоящее время запланировано. Я не могу понять, почему это происходит. Значит ли это, что sendDirect() не меняет владельца сообщения (вопреки руководству)?
Помощь в этом вопросе будет очень признательна, в настоящее время я занимаюсь проблемами управления памятью в моей симуляции, и это является ее частью.
table
указателем на другой модуль? - person Jerzy D.   schedule 23.02.2017