[erlang-questions] gen_server call when return value isn't wanted

Bengt Kleberg bengt.kleberg@REDACTED
Fri Feb 11 07:40:35 CET 2011


Greetings,

There is no difference in the time it takes to complete the function
call if you have no assignment or if you assign to '_'.

If it is not the time you can save, by not waiting for the
gen_fsm:call/2 to return that interest you, I suggest using no
assignment.

If you want to continue asynchronous in the (now) calling process you
will need a new function using cast, or as you suggest, spawning a new
process before calling the old function. I would spawn if this only
happens once, but have a new function if it is done more than once.


bengt

On Fri, 2011-02-11 at 04:37 +0100, James Aimonetti wrote:
> I have a gen_server function, that as part of the body does a DB save, 
> and returns the saved version of the data.
> 
> save_data(Data) ->
>    gen_server:call(?SERVER, {save_data, Data}).
> 
> Occasionally I don't care about the result of the save and was wondering 
> about couple of ideas.
> 
> Is there a difference to the compiler in doing
> 
> ...
> my_server:save_data(Stuff),
> ...
> 
> versus
> ...
> _ = my_server:save_data(Stuff),
> ...
> 
> or should I just create a version of save_data/1 that uses cast instead? 
> Perhaps spawn the save_data/1 call?
> 



More information about the erlang-questions mailing list