gen_fsm の動作を持つモジュールがあります。現在、適切な状態/メッセージで標準の {stop, Reason, State} を返すことで終了しています。
正常に終了したように見えますが、実行時にエラーと見なされます。
これは正常ですか?エラーと見なされずに fsm プロセスを停止する方法はありますか?
gen_fsm の動作を持つモジュールがあります。現在、適切な状態/メッセージで標準の {stop, Reason, State} を返すことで終了しています。
正常に終了したように見えますが、実行時にエラーと見なされます。
これは正常ですか?エラーと見なされずに fsm プロセスを停止する方法はありますか?
戻り値は {stop,StateName,StateData} ではなく {stop,Reason,StateData} です。
Reason が通常またはシャットダウン以外の場合、エラー レポートが生成されます。サーバーの通常の終了には、サーバーがそのスーパーバイザーによって終了するように求められたときに、通常のシャットダウンが使用されます。
(エラーの詳細が追加されたので編集します。)
gen_fsm
呼んでいるclient_fsm:terminate(normal, loggedin, {state,#Port<0.144>,12345,"Bob"})
これは function_clause 例外につながります (関数は存在しますが、これらの引数に対して句を一致させることはできません)。client_fsm:terminate/3
その呼び出しが成功するように変更すると、エラーは解消されます。