[erlang-questions] gen_server call and reply

Scott Lystig Fritchie <>
Wed Sep 19 02:09:41 CEST 2007


>>>>> "ml" == Matthias Lang <> writes:

ml> Christian S writes:

>> One case that struck my mind is when one spaws a process to do
>> something and return the value with gen_server:reply/2. That
>> requires gen_server:reply/2 to need to be executed before the
>> gen_server:handle_call/3 returns noreply.

ml> That's a good point. That pretty much kills my doubts.

I'm now quite puzzled.  Perhaps I haven't had enough coffee today.

Assume the following two timelines, where time advances as we read
from top to bottom:

    gen_server proc                  helper proc
    ---------------                  -----------
    start executing handle_call/3
    spawn helper proc
                                     do stuff for arbitrary time...
                                     call gen_server:reply/2
    return {noreply, ...}

My understanding of Christian's statement is that this timeline
results in invalid behavior:

    gen_server proc                  helper proc
    ---------------                  -----------
    start executing handle_call/3
    spawn helper proc
                                     do stuff for arbitrary time...
    return {noreply, ...}
                                     call gen_server:reply/2

If my understanding is correct, then Christian's statement is not
correct: the server's apparent behavior will be correct in either
timeline.

-Scott



More information about the erlang-questions mailing list