anchor.diff:      end.
   
   poll_stat_change(Metric, OriginalValue) ->
  -    case folsom_metrics:get_metric_value(Metric) of
  -        OriginalValue -> 
  -            poll_stat_change(Metric, OriginalValue);
  -        _ ->
  -            ok
  +    {_, Secs, _} = os:timestamp(),
  +    poll_stat_change(Metric, OriginalValue, Secs+?POLL_TIMEOUT).
  +
  +poll_stat_change(Metric, OriginalValue, ExpireSecs) ->
  +    {_, Secs, _} = os:timestamp(),
  +    case Secs > ExpireSecs of
  +        true ->
  +            throw({error, {expired, Metric, OriginalValue}});
  +        false ->
  +            case folsom_metrics:get_metric_value(Metric) of
  +                OriginalValue -> 
  +                    poll_stat_change(Metric, OriginalValue, ExpireSecs);
  +                _ ->
  +                    ok
  +            end
       end.
   
   %% ====================================================================
  
positive.code:         {'DOWN', Monref, process, Pid, _} ->
              ok
      end.
  
  lists_random([]) ->
      erlang:error(badarg);
  lists_random([E]) ->
      E;
  lists_random(List) ->
      Max = length(List),
      Nth = crypto:rand_uniform(1, Max),
      lists:nth(Nth, List).
  
  %% Make sure `Server' is not running
  %% `Server' _MUST_ have an exported fun `stop/0'
  
negative.code:     {ok, Pid} = riak_kv_stat:start_link(),
      unlink(Pid),
      unlink(Cache).
  
  %% ====================================================================
  %% eqc_statem callbacks
  