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: -include("log.hrl").
  -include_lib("stdlib/include/qlc.hrl").
  
  -record(hook, {
  	pid, hook, mod, func, info, nodes, mon
  }).
  
  % public api
  
negative.code: 	trigger_hooks(Hook, Args, first).
  
  trigger_hooks(Hook, Args, Mode) ->
  	?debug("trigger_hooks/3 ~s ~s ~s", [Hook, Args, Mode]),
  	Node = node(),
  	QH = qlc:q([HookRec ||
  		#hook{key = #hook_key{hook = AHook}, nodes = ANodes} = HookRec <- ets:table(?MODULE),
  		AHook == Hook, (ANodes == global orelse lists:member(Node, ANodes))]),
  	Hooks = qlc:e(QH),
  	Acc = case Mode of
  