У меня есть процесс MAIN, который порождает реализацию поведения gen_fsm, но этот процесс MAIN не является реализацией поведения супервизора, это просто еще один модуль.
Допустим, реализация gen_fsm называется GAME_ROOM.
Мой случай таков:
- Когда будет готово 3 человека, в процессе MAIN появится новый GAME_ROOM.
- Я использую функцию gen_fsm: start_link для запуска нового GAME_ROOM, поэтому, если GAME_ROOM завершит работу по ошибке, мой MAIN-процесс может вызвать новый, чтобы заменить сбитый процесс.
- Мне удалось сделать так, чтобы мой процесс MAIN обнаружил событие EXIT всех сбитых GAME_ROOM
Проблема в том, что мне нужно восстановить все сбитые состояния GAME_ROOM на новом.
Мой вопрос: как я могу использовать функцию завершения gen_fsm для передачи последних состояний gen_fsm в мой процесс MAIN, поэтому, когда я возрождаю новый GAME_ROOM, я могу передать эти состояния?