anchor.diff:  	async_trigger_hooks(Hook, Args, first).
   
   async_trigger_hooks(Hook, Args, Mode) ->
  +	?debug("async_trigger_hooks/3 ~s ~s ~s", [Hook, Args, Mode]),
   	spawn(fun() -> trigger_hooks(Hook, Args, Mode) end).
   
   create_ets() ->
  
positive.code: 
  handle_cast({add_hook, Pid, Hook, Mod, Func, Info, Nodes}, State) ->
  	Monref = erlang:monitor(process, Pid),
  	Rec = #hook{pid = Pid, hook = Hook, mod = Mod, func = Func, info = Info,
  		nodes = Nodes, mon = Monref},
  	ets:insert(?MODULE, [Rec]),
  	{noreply, State};
  
negative.code: 
  start_link() ->
  	pre_hooks:create_ets(),
  	Result = gen_server:start_link({local, ?MODULE}, ?MODULE, {}, []),
  	pre_client_hooks:register_hooks(),
  	Result.
  
  add_hook(Hook, Mod, Func) ->
  	add_hook(Hook, Mod, Func, undefined, global).
  