monitor message order
Raimo Niskanen
raimo@REDACTED
Mon Sep 22 08:57:18 CEST 2003
Dont make yourself depending on the order - it may change in future
releases if we happen to rewrite the code to gain a percent of speed, or
something.
/ Raimo Niskanen, Erlang/OTP, Ericsson AB
Vladimir Sekissov wrote:
> Good day,
>
> vances> If I have a process set up multiple monitors to another
> vances> process is there any telling which monitor reference will
> vances> be returned first? FIFO? FILO? Random?
>
> If I correctly understand source
>
> erts/emulator/beam/erl_process.c
> erts/emulator/beam/bif.c
> erts/emulator/beam/utils.c
>
> the order is LIFO.
>
> Reference consists from four cyclic counters so we can do simple test:
>
> 19> F1 = fun () -> receive stop -> exit(normal) end end.
> #Fun<erl_eval.19.280769>
>
> 24> F2 = fun (Cont) ->
> receive
> Msg ->
> io:format("~p~n", [Msg]), Cont(Cont)
> after 5000 -> ok
> end
> end.
> #Fun<erl_eval.5.123085357>
>
> 25> F3 = fun (Pid) ->
> lists:foreach(fun (_) -> erlang:monitor(process, Pid) end,
> [1,2,3,4,5,6]),
> Pid ! stop,
> F2(F2)
> end.
> 27> F3(spawn(F1)).
> {'DOWN',#Ref<0.0.0.11860>,process,<0.2289.0>,normal}
> {'DOWN',#Ref<0.0.0.11859>,process,<0.2289.0>,normal}
> {'DOWN',#Ref<0.0.0.11858>,process,<0.2289.0>,normal}
> {'DOWN',#Ref<0.0.0.11857>,process,<0.2289.0>,normal}
> {'DOWN',#Ref<0.0.0.11856>,process,<0.2289.0>,normal}
> {'DOWN',#Ref<0.0.0.11855>,process,<0.2289.0>,normal}
> ok
>
> Best Regards,
> Vladimir Sekissov
>
> vances>
> vances> If I have a process set up multiple monitors to another
> vances> process is there any telling which monitor reference will
> vances> be returned first? FIFO? FILO? Random?
> vances>
> vances> I'm trying to keep track of the processes that have created
> vances> resources on a server and garbage collect those resources
> vances> when the process goes away without cleaning up after itself.
> vances>
> vances> It's easy enough at first glance but I'm struggling with the
> vances> order of operations as there are dependencies on these
> vances> resources. If I could be sure of the order of receipt of
> vances> the 'DOWN' messages it would greatly simplify things.
> vances>
> vances> -Vance
--
/ Raimo Niskanen, Erlang/OTP, Ericsson AB
More information about the erlang-questions
mailing list