でそれにsendirectを()を使用した後、私は、コードスニペット以下のいる削除メッセージ私のプロジェクトではomnetpp
if(strcmp(msg->getName(),"failedAck") == 0 || ......)
{
msg->removeControlInfo();
msg->setControlInfo(info);
recvControls++;
sendDirect(msg, table, "ackIn");
}
は基本的に、メッセージがその最終目的地に到着し、それならば(*それを呼び出すことができます)指定されたメッセージの一種で、操作を実行するために運ぶ情報を使用する別のモジュール(B *)に送られます。
私が抱えている問題は、他のB *にメッセージを送信した後、メッセージを使用してメッセージを削除したことです。しかし、私は検査官を見るとまだA *の一部として現れています。そして、A *でメッセージを削除しようとすると、現在スケジュールされているため、メッセージを削除できないというエラーメッセージが表示されます。 なぜこれが起こるのかわかりません。つまり、sendDirect()はメッセージの所有権を変更しません(マニュアルとは異なります)。
私のシミュレーションでは、現在メモリ管理の問題を扱っていますので、この点について助力をいただければ幸いです。これはその一部です。
**同じ**メッセージがインスペクタに表示されていますか?あなたはそれを使用した後にどこにコードを表示することができますか? 'table'は別のモジュールへのポインタですか? –
詳細を教えてください。ここでA *のメッセージを削除してください。 –
同じメッセージを削除してもよろしいですか?メッセージがFES内にあるため、メッセージがスケジュールされているというエラーが表示されます。 – pys