anchor.diff:  -module(node_manager).
  --export([get/0, new/1, enter/1, leave/1]).
  +-export([get/0, new/1, new_link/1, enter/1, leave/1]).
   -import(lists, [reverse/1]).
   
   get() ->
  
positive.code:     throw:_ -> undefined
    end.
  
  
  new(Nodes) when is_list(Nodes) ->
    Pid = spawn(fun() -> nodes_RR(Nodes) end),
    true = register(clusterccd_nodes_pool, Pid),
    common_io:prefixed("start nodes pool: ~w", [Pid]),
    Pid.
  
  manage(Function, Arg) when is_atom(Function) ->
    try clusterccd_nodes_pool ! {manage, Function, Arg} of
      {manage, Function, Arg} -> true
    catch
      throw:_ -> false
    end.
  
  enter(Node) -> manage(enter, Node).
  leave(Node) -> manage(leave, Node).
  
  nodes_RR([]) ->
    receive
  
negative.code:       Next = lists:delete(Node, L)
    end,
    nodes_RR(Next).
  
  manage(Function, Arg) when is_atom(Function) ->
    try clusterccd_nodes_pool ! {manage, Function, Arg} of
      {manage, Function, Arg} -> true
    catch
      throw:_ -> false
    end.
  
  enter(Node) -> manage(enter, Node).
  leave(Node) -> manage(leave, Node).
  