当前位置:  开发笔记 > 编程语言 > 正文

优雅地终止Erlang服务器或fsm?

如何解决《优雅地终止Erlang服务器或fsm?》经验,为你挑选了1个好方法。

我有一个具有gen_fsm行为的模块.现在我通过在适当的状态/消息中返回标准{stop,Reason,State}来终止它.

它似乎正确终止,但它在运行时被视为错误.

这是正常的吗?有没有办法停止fsm进程而不将其视为错误?



1> cthulahoops..:

返回值为{stop,Reason,StateData}而不是{stop,StateName,StateData}.

如果Reason不是正常或关闭,则会生成错误报告.对于正常退出服务器使用正常,当服务器被其主管要求退出时,将使用shutdown.

(现在编辑已添加错误详细信息.)

gen_fsm 正在打电话 client_fsm:terminate(normal, loggedin, {state,#Port<0.144>,12345,"Bob"})

这导致了一个function_clause异常(该函数存在但没有子句可以与这些参数匹配).如果您更改client_fsm:terminate/3以使该调用成功,则错误应该消失.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有