Прервать выполнение во время моделирования OMNET

У меня есть 4 узла в моей симуляции, в коде я проверяю флаг.

Если это стало истиной во время выполнения любого узла, то >> я хочу остановить выполнение для всех узлов и перейти к выполнению метода завершения для каждого узла.

Я пытаюсь сделать следующее, но это не вызывает метод завершения!

if(flag == true)
{ finish();
 abort();
}

Как я могу это сделать? Спасибо,


person userInThisWorld    schedule 17.04.2013    source источник
comment
Вы не указали достаточно кода для ответа на этот вопрос. Покажите, пожалуйста, достаточно кода, чтобы проблема была очевидна. Однако, основываясь только на этих трех строках, ясно, что abort() будет вызываться независимо от того, (flag == true) - это предназначено?   -  person JBentley    schedule 17.04.2013
comment
Я редактирую его, это такой же псевдокод, что я хочу проверить флаг, а затем выполнить действие, если он верен.   -  person userInThisWorld    schedule 17.04.2013
comment
Хорошо, но вы не затронули главный вопрос, а именно то, что вопрос не имеет ответа в его нынешней форме. В вашем текущем примере кода finish будет вызываться, если (flag == true). Либо код не достигается, либо (flag == false), либо finish вызывается и просто не дает ожидаемых побочных эффектов.   -  person JBentley    schedule 17.04.2013


Ответы (1)


Вы пробовали эту команду? endSimulation ();

Он завершает симуляцию, однако я не уверен, запускает он метод завершения или нет.

person Besat    schedule 22.07.2015