anchor.diff:  %% @version $Id$
   -module(trace_mpath).
   -author('schintke@zib.de').
  --vsn('$Id$').
  +-vsn('$Id$ ').
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   %%
   %% 1. call trace_mpath:start(your_trace_id)
   %% 2. perform a request like api_tx:read("a")
  -%% 3. call trace_mpath:stop(your_trace_id)
  +%% 3. call trace_mpath:stop() %% trace_id is taken from the calling
  +%%                               process implicitly
   %% 4. call trace_mpath:get_trace(your_trace_id) to retrieve the trace,
   %%    when you think everything is recorded
   %% 5. call trace_mpath:cleanup(your_trace_id) to free the memory
  
positive.code: 
  %% client functions
  -export([start/0, start/1, start/2, stop/0]).
  -export([get_trace/0, get_trace/1, cleanup/1]).
  
  %% trace analysis
  -export([send_histogram/1]).
  
negative.code:             comm:send(Pid, {get_trace_reply, lists:reverse(Msgs)})
      end,
      State;
  on({cleanup, TraceId}, State) ->
      case lists:keytake(TraceId, 1, State) of
          {value, _Tuple, TupleList2} -> TupleList2;
          false                       -> State
      end.
  
  passed_state_new(TraceId, Logger) -> {TraceId, Logger}.
  passed_state_trace_id(State)      -> element(1, State).
  