【发布时间】:2011-08-15 11:31:03
【问题描述】:
我尝试将消息投射到 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?
【问题讨论】:
-
附带说明,您不必发送
{watchers}(元组中的原子),只需发送watchers原子作为消息就足够了。
标签: erlang gen-server