anchor.diff:  clean_triggers(Triggers,IDs) ->
     lists:filter(fun({ID,_})->not lists:member(ID,IDs) end, Triggers).
   
  -check_jailed(LD,_) when ?max_jailed < length(LD#ld.jailed) ->
  +check_jailed(LD,_) when LD#ld.max_jailed < length(LD#ld.jailed) ->
     % we take a timeout when enough pids are jailed. conservative is good.
  -  erlang:start_timer(timeout(restart), self(), restart),
  +  erlang:start_timer(LD#ld.timeout_restart, self(), restart),
     stop_monitor(),
     flush(),
     throw(taking_timeout);
   check_jailed(LD,What) ->
     case lists:member(What, LD#ld.jailed) of
       false->
  -      erlang:start_timer(timeout(release), self(), {release, What}),
  +      erlang:start_timer(LD#ld.timeout_release, self(), {release, What}),
         LD#ld{jailed=[What|LD#ld.jailed]};
       true ->
         throw(is_jailed)
  
positive.code:    ,{[prfSys,iowait],fun(X)->true=(0.3<X) end}
    ].
  
  timeout(restart) -> 5000;                       %  5 sec
  timeout(release) -> 1800.                       %  1.8 sec
  -define(max_jailed, 100).
  
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  %% api
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
negative.code: 
  state() ->
    handle_state().
  
  config(prfPrc,{max_procs,MaxProcs}) ->
    prfTarg:config({prfPrc,{max_procs,MaxProcs}});
  config(Tag,Val) ->
    send_to_wd({cfg,Tag,Val}),
    state().
  
  delete_trigger(Key) ->
    send_to_wd({delete_trigger,Key}).
  