anchor.diff: +%%%-------------------------------------------------------------------
  +%%% File     : siptimer.erl
  +%%% Author   : Fredrik <ft@it.su.se>
  +%%% Descrip. : Module to manage timers, for use in client and server
  +%%%            transactions. Make it easier to cancel timers and
  +%%%            revive them when we get provisional responses etc.
  +%%% Created  : 17 Jun 2003 by Fredrik Thulin <ft@it.su.se>
  +%%%-------------------------------------------------------------------
   -module(siptimer).
  --export([add_timer/4, revive_timer/3, reset_timers/2, get_timer/2,
  -	 get_timers_appsignal_matching/2, cancel_timer/2, cancel_all_timers/1,
  -	 cancel_timers/2, cancel_timers_with_appsignal/2, stop_timers/1,
  -	 debugfriendly/1, timeout2str/1, extract/2, empty/0]).
  -
  +
  +%%--------------------------------------------------------------------
  +%% External exports
  +%%--------------------------------------------------------------------
  +-export([
  +	 add_timer/4,
  +	 revive_timer/3,
  +	 reset_timers/2,
  +	 get_timer/2,
  +	 get_timers_appsignal_matching/2,
  +	 cancel_timer/2,
  +	 cancel_all_timers/1,
  +	 cancel_timers/2,
  +	 cancel_timers_with_appsignal/2,
  +	 stop_timers/1,
  +	 debugfriendly/1,
  +	 timeout2str/1,
  +	 extract/2,
  +	 empty/0,
  +	 length/1
  +	]).
  +
  +%%--------------------------------------------------------------------
  +%% Records
  +%%--------------------------------------------------------------------
   -record(siptimerlist, {list}).
   -record(siptimer, {ref, timer, timeout, description, starttime, appsignal}).
   
  +%%====================================================================
  +%% External functions
  +%%====================================================================
   add_timer(0, _, _, TimerList) when record(TimerList, siptimerlist) ->
       TimerList;
   add_timer(Timeout, Description, AppSignal, TimerList) when record(TimerList, siptimerlist) ->
  
positive.code:     "0.5";
  timeout2str(Timeout) ->
      integer_to_list(Timeout div 1000).
  
negative.code:     Ref = SipTimer#siptimer.ref,
      make_siptimerlist(update_timer2(Ref, SipTimer, TList#siptimerlist.list, TList)).
      
  update_timer2(Ref, _, [], TList) ->
      logger:log(error, "Siptimer: Asked to update a timer, but I can't find it", [Ref]),
      logger:log(error, "Siptimer: Asked to update a timer with ref=~p, but I can't find it in list :~n~p",
  