anchor.diff:  %%   secondary queue if there it's primary is empty. This will not set the
   %%   returned process as the current thread.
   %% @end
  +-spec dequeue1( #state{} ) -> false | {ok, #process{}, #state{}}.
   dequeue1( #state{ rdyQ1=Q1 } = State ) ->
       case queue:out( Q1 ) of 
           {empty,_} -> dequeue2( State );
  
positive.code: 
  %% @private
  %% @doc Move the top process of the secondary queue to the primary.
  promote( #state{rdyQ1=Q1, rdyQ2=Q2} = State ) ->
      case queue:out( Q2 ) of
          {empty, _} -> {ok, State};
  
negative.code: %% @doc Implements the CML based picker which looks at the dual level queue
  %%   to select a process from the primary or secondary queues.
  %% @end
  pick_next( State ) ->
      {ok, NewState} = preempt( State ),
      {ok, Top, Next} = dequeue1( NewState ),
      setCurThread( Top, Next ).
  
  %% @hidden
  %% @doc Perform a reduction.
  reduce( #state{ curThread=T, curReduct=R } = State ) ->
      case erlam_rts:safe_step(T) of
          {ok,NP} -> {ok, running, State#state{ curThread=NP,
                                                curReduct=R-1 }}; 
          {stop,NP} -> check_on_stop( NP, State );
          {yield, NP} -> yield( NP, State );
          {hang, NP, Sleep} -> 
          %% We are sleeping, so hang (stop the world style), and set reductions
          %% to zero (ignoring what they were before). Will push the process to
  