anchor.diff:          H = list_to_binary(Host),
           Line = <<"[\"", T/binary, "\",\"", H/binary, "\",", Msg/binary, "]", 10>>,
   
  -        [{_, EvF}] = ets:lookup(event_files, JobName),
  -        file:write(EvF, Line),
  +        [{_, EventProc}] = ets:lookup(event_files, JobName),
  +        EventProc ! {event, Line},
   
           if LstLen0 + 1 > ?EVENT_PAGE_SIZE * 2 ->
                   MsgLst = lists:sublist([Line|MsgLst0], ?EVENT_PAGE_SIZE),
  
positive.code: handle_cast({job_done, JobName}, {Events, MsgBuf} = S) ->
          case ets:lookup(event_files, JobName) of
                  [] -> ok;
                  [{_, F}] ->
                          file:close(F),
                          ets:delete(event_files, JobName)
          end,
          case dict:find(JobName, MsgBuf) of
  
negative.code:                 
                  {ok, Root} = application:get_env(disco_root),
                  FName = filename:join([Root, disco_server:jobhome(JobName), "events"]),
                  Pid = spawn(fun() -> job_event_handler(FName) end),
                  ets:insert(event_files, {JobName, Pid}),
  
                  {noreply, add_event(Host, JobName, M, P, {Events, MsgBuf})}
          end;
  