anchor.diff:  ping() ->
       gen_server:call(?SRVNAME, {ping}).
   
  +restart_peer() ->
  +    gen_server:call(?SRVNAME, {restart}).
   
   %% ------ GENERIC -----
   
  
positive.code:     end.
  
  shutdown(Peer,S) ->
      send_peer(Peer, Ref=get_ref(), ?TAG_NODE, [?EJMSGPART(call,shutdown)]),
      lists:map(fun(W) -> W ! {'STOP'} end, S#ej.workers),
      receive
          {Peer,Ref,{?TAG_OK,[?EJMSGPART(call,bye)]}} -> 
              log:info(self(), "shutdown confirmed by peer", []),
  
negative.code:     {ok,S1}.
  
  % @hidden     
  handle_call({send,Ref,Tag,Msg},From,S) ->
      {W, L} = f:lrot(S#ej.workers),
      gen_server:cast(W,{send,From,Ref,Tag,Msg}),
  