[erlang-questions] time consuming operations inside gen_server

Martin Dimitrov <>
Wed Dec 12 11:27:23 CET 2012


I browsed through the files and looks very interesting. What does "wp"
stand for?

Martin

On 12/12/2012 11:58 AM, Roman Gafiyatullin wrote:
> Hello Martin,
> 
> In this cases the problem is usually solved as Attila Rajmund Nohl said.
> Since it's the common situation I wrote a lib for that: https://github.com/RGafiyatullin/gen_wp
> See src/gen_wp_example.erl (https://github.com/RGafiyatullin/gen_wp/blob/master/src/gen_wp_example.erl) for how to use it. 
> 
> Questions and constructive critics are welcome and appreciated. 
> 
> --
> RG
> 
> 
> On Wednesday, December 12, 2012 at 12:46 pm, Martin Dimitrov wrote:
> 
>> Thanks, this sounds very cool.
>>
>> On 12/12/2012 11:42 AM, Attila Rajmund Nohl wrote:
>>> 2012/12/12 Martin Dimitrov < (mailto:)>:
>>>> Hi all,
>>>>
>>>> In our application, we have a gen_server that does a time consuming
>>>> operation. The message is of type cast thus the caller process doesn't
>>>> sit and wait for the operation to finish. But while the gen_server is
>>>> busy with the cast message, it doesn't serve any other call, right?
>>>>
>>>> So, would it be appropriate to create a process that will do the time
>>>> consuming operation and then notify the gen_server?
>>>>
>>>
>>>
>>> The pattern I use in this case is to still use gen_server:call (if the
>>> caller needs to be blocked), start a separate process for the
>>> time-consuming stuff, return {noreply, ...} from the handle_call (so
>>> the gen_server can handle other calls), then call gen_server:reply
>>> from the started process when the time-consuming operation finished.
>>> Of course, the applicability of this pattern depends on what you
>>> actually do.
>>>
>>
>>
>> _______________________________________________
>> erlang-questions mailing list
>>  (mailto:)
>> http://erlang.org/mailman/listinfo/erlang-questions
>>
>>
> 
> 
> 




More information about the erlang-questions mailing list