Возврат Msg вызывающей программе, когда state_timeout происходит в gen_statem erlang - PullRequest
1 голос
/ 04 марта 2020

Например: состояние выглядит следующим образом:

state1({call,Caller},Msg,Data) ->
    NewData = do_somthing(),
    {next_State,state2,NewData,[{reply,Caller,NewMsg},{state_timeout,5000,any}]}.

состояние тайм-аута:

state2(state_timeout,Msg,Data) ->
    something() ( Here my question)

Мне нужно вернуть сообщение, когда истекло время ожидания. Как я могу это сделать, если я не знаю, кто является вызывающим абонентом в state2 (state_timeout, Msg, Data)?

1 Ответ

0 голосов
/ 05 марта 2020

Data может быть чем угодно:

NewData = {do_something(), Caller},

, затем:

state2(state_timeout,Msg,{Data, Caller}) ->
...