anchor.diff:  				     [true]}]),    
       ?line Half = ets:info(T,size),
       ?line Half = get_kept_objects(T),
  -    my_spawn_opt(fun()-> ?line true = ets:info(T,fixed),
  -			 Self ! start,
  -			 io:format("Starting to delete... ~p\n",[now()]),
  -			 del_one_by_one_set(T,1,Half+1),
  -			 io:format("Done with delete. ~p\n",[now()]),
  -			 Self ! done 
  -		 end, [link, {scheduler,2}]),
  +    my_spawn_opt(
  +      fun()-> true = ets:info(T,fixed),
  +	      Self ! start,
  +	      io:put_chars("Starting to delete... ~p\n"),
  +	      do_tc(fun() ->
  +			    del_one_by_one_set(T, 1, Half+1)
  +		    end,
  +		    fun(Elapsed) ->
  +			    io:format("Done with delete in ~p ms.\n",
  +				      [Elapsed])
  +				end),
  +	      Self ! done
  +      end, [link, {scheduler,2}]),
       ?line start = receive_any(),
  -    io:format("Unfixing table...~p nitems=~p\n",[now(),ets:info(T,size)]),
  -    ?line true = ets:safe_fixtable(T,false),
  -    io:format("Unfix table done. ~p nitems=~p\n",[now(),ets:info(T,size)]),
  +    io:format("Unfixing table... nitems=~p\n", [ets:info(T, size)]),
  +    do_tc(fun() ->
  +		  true = ets:safe_fixtable(T, false)
  +	  end,
  +	  fun(Elapsed) ->
  +		  io:format("Unfix table done in ~p ms. nitems=~p\n",
  +			    [Elapsed,ets:info(T, size)])
  +	  end),
       ?line false = ets:info(T,fixed),
       ?line 0 = get_kept_objects(T),
       ?line done = receive_any(),
  
positive.code:     ?line Deleted = get_kept_objects(T),
      
      {Child, Mref} = 
        my_spawn_opt(fun()-> ?line true = ets:info(T,fixed),
  			   Parent ! start,
  			   io:format("Child waiting for table to be unfixed... now=~p mem=~p\n",
  				     [now(),ets:info(T,memory)]),
  			   repeat_while(fun()-> ets:info(T,fixed) end),
  			   io:format("Table unfixed. Child Fixating! now=~p mem=~p\n",
  				     [now(),ets:info(T,memory)]),    
  			   ?line true = ets:safe_fixtable(T,true),
  			   repeat_while(fun(Key) when Key =< NumOfObjs -> 
  						ets:delete(T,Key), {true,Key+1};
  					   (Key) -> {false,Key}
  					end,
  					Deleted),
  			   ?line 0 = ets:info(T,size),
  			   ?line true = get_kept_objects(T) >= Left,		      
  			   ?line done = receive_any()
  		   end, 
  		   [link, monitor, {scheduler,2}]),
      
      ?line start = receive_any(),        
      ?line true = ets:info(T,fixed),
      io:format("Parent starting to unfix... ~p\n",[now()]),
      ets:safe_fixtable(T,false),
      io:format("Parent done with unfix. ~p\n",[now()]),
      Child ! done,
      {'DOWN', Mref, process, Child, normal} = receive_any(),
      ?line false = ets:info(T,fixed),
  
negative.code: ets_new(Name, Opts) ->
      %%ets:new(Name, [compressed | Opts]).
      ets:new(Name, Opts).
  
  do_tc(Do, Report) ->
      T1 = erlang:monotonic_time(),
      Do(),
      T2 = erlang:monotonic_time(),
      Elapsed = erlang:convert_time_unit(T2 - T1, native, milli_seconds),
      Report(Elapsed).
  