anchor.diff:          event_server:event(EventServer, Node, T#task.jobname, "[~s:~B] ~s",
               [T#task.mode, T#task.taskid, Message], Params).
   
  +error(State) ->
  +        {stop, worker_exit(State, {job_error, "Worker killed"}), State}.
  +
   error(Reason, State) ->
           error(nonrecoverable, Reason, State).
   
  
positive.code:         {reply, ok, S#state{port = Port}, 30000}.
  
  handle_cast(kill_worker, S) ->
          error("Worker killed", S).
  
  handle_event({event, {<<"DAT">>, _Time, _Tags, Message}}, S) ->
          error(recoverable, Message, S);
  
negative.code:         error(Reason, S);
  
  handle_info({_, closed}, S) ->
          error(S);
  
  handle_info(timeout, #state{linecount = 0} = S) ->
          error(recoverable, "Worker didn't start in 30 seconds", S);
  
  handle_info({'DOWN', _, _, _, _}, S) ->
          error(S).
  
  terminate(_Reason, State) ->
          % Possible bug: If we end up here before knowing child_pid, the
  