[erlang-questions] Programming question
Sean Hinde
sean.hinde@REDACTED
Thu Jan 25 12:47:55 CET 2007
On 25 Jan 2007, at 08:23, Mats Cronqvist wrote:
> Sean Hinde wrote:
>>
>> One fix might be for gen:call() to issue another exit signal towards
>> the calling process after returning the result.
>
> surely if you catch the exit and it turns out you really wanted
> it, you
> should re-throw?
>
> how about
>
> try
> Res = gen_server:call(PidA, {op, stuff}),
> S1 = process(Res, S),
> loopB(PidA, S1)
> catch
> C:R ->
> case is_process_alive(PidA) of
> true -> loopB(PidA,dosomething({C,R},S));
> false -> exit({C,R})
> end
> end
This would work, but my is it ugly - how is anyone supposed to
remember to do that every time they want to be sure that the called
process has gone down (as opposed to any other reason for the call to
thrown an exception).
The problem as I see it is that the calling process only sometimes
get its 'EXIT' message - it depends on context.
Sean
More information about the erlang-questions
mailing list