Does worker instance of gen_leader spawn separate processes to perform a task concurrently like in pool module?<br><br><br><div class="gmail_quote">On Mon, Apr 7, 2008 at 4:46 PM, Ulf Wiger (TN/EAB) <<a href="mailto:ulf.wiger@ericsson.com">ulf.wiger@ericsson.com</a>> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">db skrev:<div class="Ih2E3d"><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
I have looked at gdict example.  Storing values into global dict goes to the leader and lookup is done by workers on the local gen_leader instance.<br>
<br>
It seems gen_leader works by having worker pull task rather than master push task.  Am I right?<br>
</blockquote>
<br></div>
No, the leader pushes the whole dictionary when elected, and<br>
then each update function, as all updates go through the<br>
leader process.<br>
<br>
So, for example (expanding the macro definition):<br>
<br>
-define(store(Dict,Expr,Legend),<br>
        gen_leader:leader_call(Dict, {store, fun(D) -><br>
                                                     Expr<br>
                                             end})).<br>
<br>
-define(lookup(Dict, Expr, Legend),<br>
        gen_leader:call(Dict, {lookup, fun(D) -><br>
                                               Expr<br>
                                       end})).<br>
<br>
%% dict functions that modify state:<br>
append(Key, Value, Dict) -><br>
    gen_leader:leader_call(<br>
        Dict, {store, fun(D) -><br>
                      dict:append(Key,Value,D) <br>
               end})).<br>
<br>
then, in the callback module:<br>
<br>
handle_leader_call({store,F}, _From, Dict, _E) -><br>
    NewDict = F(Dict),<br>
    {reply, ok, {store, F}, NewDict};<br>
                  ^^^^ <- this is the push<br>
<br>
<br>
and here's where the workers receive it:<br>
<br>
from_leader({store,F}, Dict, _E) -><br>
    NewDict = F(Dict),<br>
    {ok, NewDict}.<br>
<br>
<br>
<br>
BR,<br>
Ulf W<br>
</blockquote></div><br><br clear="all">Thank you,<br>-- <br>rk<br><br>That which we persist in doing becomes easier for us to do; not that the nature of the thing itself is changed, but that our power to do is increased.<br>
-Ralph Waldo Emerson