anchor.diff:  %%                                      {stop, Reason, State}
   %% Description: Handling cast messages
   %%--------------------------------------------------------------------
  -handle_cast({cloud_run, CloudName, Fun, [Args]}, #state{start_args = StartArgs} = State) ->
  -  cloud_run(CloudName, Fun, Args, StartArgs),
  +handle_cast({cloud_run, CloudName, Fun, [Args]}, #state{thrift_pid = P} = State) ->
  +  cloud_run(P, CloudName, Fun, Args),
     {noreply, State};
     
   handle_cast(_Msg, State) ->
  
positive.code:   end.
    
  
  cloud_run(Name, Meth, Args, StartArgs) ->
    ThriftPort = proplists:get_value(proto_port, StartArgs),
    NewStartArgs = utils:append({proto_port, ThriftPort+1}),
    P = start_thrift_cloud_server(NewStartArgs),
    cloud_query(P, Name, Meth, Args).
negative.code: 
  start_thrift_cloud_server(Args) ->  
    StartCmd = build_start_command("run", Args),
    case whereis(cloud_thrift_server) of
      undefined -> start_and_link_thrift_server(StartCmd);
      Node -> Node
    end.  
    
  start_and_link_thrift_server(StartCmd) ->
    ?INFO("Starting ~p: ~p~n", [?MODULE, StartCmd]),
    case (fun() -> os:cmd(StartCmd) end) of
      {error, Reason} ->
        ?INFO("Assuming the thrift_client is already started error: ~p~n", [Reason]),
        ok;
      Pid ->
        case utils:is_process_alive(Pid) of
          true -> 
            erlang:register(cloud_thrift_server, Pid),
            erlang:monitor(process, Pid);
          _ -> ok
        end,
        Pid
    end.
    
  