<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;">Hi everyone,
<div><br /></div>
<div>How do you gracefully exit from a state_timeout in a gen_statem? Generally, for a gen_statem, I can return “stop” or {stop, Reason} from a state function and the statem will terminate. However, if I use a state timeout method, returned from init:</div>
<div><br /></div>
<blockquote style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #1abc9c;">
<div>{ok, new_state, State, {state_timeout, 2000}}</div>
</blockquote>
<div><br /></div>
<div>The new_state(state_timeout, Info, State) method is called after 2000. Returning “stop” from this given an error…:</div>
<div><br /></div>
<blockquote style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #1abc9c;">
<div>18:22:33.039 [error] <0.576.0> :  Lager event handler error_logger_lager_h exited with reason {'EXIT',{{badmatch,[smdpp_proxy,{state_timeout,timeout},[{data,[{"State",{awaiting_</div>
<div><br /></div>
</blockquote>
What can I return from this function to gracefully exit? Can this be done with state_timeout? If this is an obvious question, please point me in the right direction. The documentation here:<a href="http://erlang.org/doc/man/gen_statem.html">http://erlang.org/doc/man/gen_statem.html</a> doesn’t seem to mention any return from the state_timeout. 
<div><br /></div>
<div>Thanks!<br />
<div><br /></div>
<div><br /></div>
</div>
</div>
</body>
</html>