<div dir='auto'><div>Hi,<div dir="auto">Changing code in a running process needs to call a function prefixed by the module name.</div><div dir="auto">test:t() in your case.</div><div dir="auto">Your process is running always the first version until second version becomes old version and third version the new version.</div><div dir="auto">When first version vanish,  processes using this one die.</div><div dir="auto">Nothing to do with anonymous functions,  you will have same behavior with functions without reentrant module name prefix.</div><div dir="auto"><br></div><div dir="auto"><br></div><div class="gmail_extra"><div class="gmail_quote">Le 16 avr. 2017 10:41 PM, Vans S <vans_163@yahoo.com> a écrit :<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">It seems if you define an anonymous function in a module then compile and hotload the module,
<br>
once the full purge happens (after the second new version), the anonymous function ceases to exist.
<br>

<br>
-module(test).
<br>
-compile(export_all).
<br>

<br>
t() ->
<br>
    Anon = fun()->
<br>
        io:format("hi ~n", [])
<br>
    end,
<br>
    spawn(fun() ->
<br>
        (fun Loop()->
<br>
           Anon(),
<br>
           timer:sleep(2000),
<br>
           Loop()
<br>
        end)()
<br>
    end).
<br>

<br>

<br>
te() -> ok.
<br>

<br>
Now if you change te function to say tee, recompile+hotload, then change it to teee, and recompile+hotload again.
<br>

<br>
You stop seeing "hi" be printed, the process is dead, and there are no errors.
<br>

<br>
Does this mean it is simply not recommended to use anonymous functions? 
<br>
Would saving the anonymous function to the process dictionary or something keep it alive?
<br>
So many questions of why this extremely hard to debug behavior happens.
<br>
_______________________________________________
<br>
erlang-questions mailing list
<br>
erlang-questions@erlang.org
<br>
http://erlang.org/mailman/listinfo/erlang-questions
<br>
</p>
</blockquote></div><br></div></div></div>