我尝试将消息转换为gen_server:
gen_server:cast({global, ID}, {watchers}).处理程序是:
handle_cast({watchers}, State) ->
case State#table_state.watchers of
[] ->
{reply, no_watchers, State};
_ ->
{reply, State#table_state.watchers, State}
end;但是,当我执行gen_server:cast时,gen_server终止,并出现错误:
=ERROR REPORT==== 29-Apr-2011::18:26:07 ===
** Generic server 1 terminating
** Last message in was {'$gen_cast',{watchers}}
** When Server state == {table_state,1,"1",11,[]}
** Reason for termination ==
** {bad_return_value,{reply, no_watchers, {table_state,3,"3",11,[]}}}为什么我会得到bad_return_value
发布于 2011-04-29 20:53:30
您不能使用cast进行回复(请参阅gen_server documentation)。这就是转换异步消息而不是使用调用的全部意义所在。
在本例中,您希望返回一个回复,因此请改用gen_server:call/2。
https://stackoverflow.com/questions/5832050
复制相似问题