Uncertain death
Robert Virding
robert.virding@REDACTED
Sat Nov 19 18:20:45 CET 2005
Doing exit(Pid, kill) sends an exit signal, of value kill, to the
process so it should be scheduled in the same way as "normal" exit
signals. Generally I think you should be careful if you start special
casing various things as you can get unexpected behavious.
Robert
Ulf Wiger (AL/EAB) wrote:
>When you send an exit signal to a process,
>it is scheduled in order to receive it.
>This goes for 'kill' messages as well, even
>though you'd think that they could be
>killed right away by the runtime system.
>
>/Uffe
>
>
>
>>-----Original Message-----
>>From: owner-erlang-questions@REDACTED
>>[mailto:owner-erlang-questions@REDACTED] On Behalf Of
>>Dominic Williams
>>Sent: den 17 november 2005 23:32
>>To: 'erlang-questions@REDACTED'
>>Subject: Uncertain death
>>
>>Hello,
>>
>>The following program seems to me to indicate that when a
>>processes gets killed, there is, for a brief moment,
>>contradictory information about its state. Specifically, the
>>information returned by processes() seems to lag behind that
>>given by is_process_alive().
>>
>>
>>%%% death.erl
>>
>>-module (death).
>>-export ([run/0, server/0]).
>>
>>run() ->
>> Pid = spawn (?MODULE, server, []),
>> exit (Pid, kill),
>> report (Pid),
>> timer:sleep(1000),
>> report (Pid).
>>
>>report (Pid) ->
>> io:fwrite("~p alive: ~p; member of processes(): ~p~n",
>> [Pid, is_process_alive (Pid),
>> lists:member(Pid, processes())]).
>>
>>server () ->
>> receive
>> hello ->
>> server();
>> stop ->
>> bye
>> end.
>>
>>%%% end death.erl
>>
>>1> c("/Users/dodo/tmp/death", [{outdir, "/Users/dodo/tmp/"}]).
>>{ok,death}
>>2> death:run().
>><0.35.0> alive: false; member of processes(): true <0.35.0>
>>alive: false; member of processes(): false ok
>>
>>Same result under MacOS/R9C and WinXP/R10B
>>
>>Regards,
>>
>>Dominic Williams
>>http://www.dominicwilliams.net
>>
>>----
>>
>>
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20051119/30b22960/attachment.htm>
More information about the erlang-questions
mailing list