anchor.diff:  handle_info(timeout, S=#state{}) ->
       NewState = maybe_push_message(S),
       lager:debug("number of waitings: ~p", [queue:len(NewState#state.waiting)]),
  -    {noreply, NewState, get_timeout(NewState)};
  +    {State, Sleep} = prepare_sleep(NewState),
  +    {noreply, State, Sleep};
  +
   handle_info({'DOWN', Ref, process, _Pid, _}, S=#state{monitors=M}) ->
       NewState = case gb_sets:is_member(Ref, M) of
           true ->
  
positive.code:         false ->
              S
      end,
      {noreply, NewState, get_timeout(NewState)};
  handle_info(Msg, State) ->
      io:format("Unknown message received: ~p~n", [Msg]),
      {noreply, State}.
  
negative.code: 
  handle_call({push, Data}, _From, S=#state{}) ->
      R = lmq_lib:enqueue(S#state.name, Data, get_retry(S#state.props)),
      {State, Sleep} = prepare_sleep(S),
      {reply, R, State, Sleep};
  
  handle_call({pull, Timeout}, From={Pid, _}, S=#state{}) ->
      Ref = erlang:monitor(process, Pid),
  