anchor.diff:  %% scheduled, until awaken.
   block() ->
       ?RP_SCHED ! #sched{msg = block, pid = self()},
  -    receive
  -	#sched{msg = continue} -> true
  -    end.
  +    wait().
   
   %% @spec: rep_demonitor(reference()) -> 'true'
   %% @doc: Replacement for `demonitor/1'.
  
positive.code: rep_unlink(Pid) ->
      Result = unlink(Pid),
      ?RP_SCHED ! #sched{msg = unlink, pid = self(), misc = Pid},
      rep_yield(),
      Result.
  
  %% @spec rep_unregister(atom()) -> 'true'
  
negative.code:     dispatcher(Context);
  
  %% Yield message handler.
  %% Receiving a 'yield' message means that the process is preempted, but
  %% remains in the active set.
  handler(yield, Pid, #context{active = Active} = Context, _Misc) ->
      Lid = lid:from_pid(Pid),
      ?debug_2("Process ~s yields.~n", [lid:to_string(Lid)]),
      NewActive = sets:add_element(Lid, Active),
      Context#context{active = NewActive}.
  
  %%%----------------------------------------------------------------------
  %%% Helper functions
  