anchor.diff:      SendPid = spawn_link(fun() -> worker_send(Port) end),
       {noreply, State#state{port = Port, worker_send = SendPid}, ?PID_TIMEOUT}.
   
  +
  +-type port_msg() :: timeout | {port(), {data, binary()}}
  +                  | {port(), {exit_status, non_neg_integer()}}
  +                  | {'DOWN', _, _, _, _}.
  +-spec handle_info(port_msg(), state()) -> gs_noreply() | gs_stop(shutdown()).
   handle_info({_Port, {data, Data}},
               #state{error_output = true, buffer = Buffer} = State)
               when size(Buffer) < ?MAX_ERROR_BUFFER_SIZE ->
  
positive.code:             throttle = worker_throttle:init()}
      }.
  
  handle_cast(start, #state{task = Task, master = Master} = State) ->
      JobName = Task#task.jobname,
      Fun = fun() -> make_jobhome(JobName, Master) end,
  
negative.code:          event/3]).
  
  -include("disco.hrl").
  -include("gs_util.hrl").
  
  -record(state, {master :: node(),
                  task :: task(),
  