anchor.diff:  stop() -> 
     try ?MODULE ! stop
     catch _:_ -> ok
  +  end.
  +
  +%% E.g:  add_send_subscriber("localhost",56669,"I'm a Cookie").
  +add_send_subscriber(Host,Port,PassPhrase) ->
  +  try {ok,{hostent,Host,[],inet,4,_}} = inet:gethostbyname(Host),
  +      ?MODULE ! {add_subscriber,mk_send(Host,Port,PassPhrase)},
  +      ok
  +  catch 
  +    error:{badmatch,{ok,{hostent,G,[W],inet,4,_}}} -> {error,{badhost,W,G}};
  +    _:R -> {error,R}
  +  end.
  +
  +add_log_subscriber() ->
  +  try ?MODULE ! {add_subscriber,mk_log(group_leader())}, ok
  +  catch _:R -> {error,R}
  +  end.
  +
  +clear_subscribers() ->
  +  try ?MODULE ! clear_subscribers, ok
  +  catch _:R -> {error,R}
     end.
   
   message(Term) ->
  
positive.code: -module(watchdog).
  
  -export([start/0,stop/0]).
  -export([send/3,out/1]).
  -export([message/1]).
  -export([loop/1]).
  
  -include("log.hrl").
  
  -record(ld, 
  	{jailed=[]			    %jailed pids
  	 ,subscribers=default_subs()        %where to send our reports
  	 ,triggers=default_triggers()       %{atom(Tag), fun/1->no|fun/1}
  	 ,prfState			    %prfTarg:subscribe return val
  	 ,userData			    %last user data
  	 ,prfData			    %last prf data
  	 ,monData			    %last system_monitor data
  	 ,lines=5			    %# of displayed procs
  	}).
  
  %% constants
  
  default_subs() -> 
    [
     send("localhost",56669,"I'm a Cookie")
  %   ,out(group_leader())
    ].
  
  default_triggers() -> 
    [ {[sysMon,long_gc],500}	      %gc time [ms]
     ,{[sysMon,large_heap],1024*256} %heap size [words]
     ,{user,true}
     ,{ticker,true}
     ,{[prfSys,user],fun(X)->true=(0.95<X) end}
  
negative.code: 
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  mk_log(FD) -> fun(E)-> print_term(FD,expand_recs(E)) end.
  
  print_term(FD,Term) -> 
    case node(FD) == node() of
      true -> ?log(Term);
  