anchor.diff:        BoundConsumed =
           case SchedulingBound =/= infinity of
             true ->
  -            Delay = count_delay(SortedActors, Actor),
  -            case Delay =:= 0 of
  -              true -> 0;
  -              false ->
  -                case State#scheduler_state.scheduling_bound_type of
  -                  delay -> Delay;
  -                  preemption -> 1
  +            case State#scheduler_state.scheduling_bound_type of
  +              delay -> count_delay(SortedActors, Actor);
  +              preemption ->
  +                case PreviousWasEnabled of
  +                  true -> 1;
  +                  false -> 0
                   end
               end;
             false -> 0
  
positive.code:       true -> SchedulingBound;
        false -> SchedulingBound - BoundConsumed
      end,
    InitNextTrace =
      #trace_state{
         actors      = Actors,
         index       = Index + 1,
         previous_was_enabled = PreviousWasEnabled,
         scheduling_bound = NewSchedulingBound,
         sleeping    = NextSleeping,
         wakeup_tree = NextWakeupTree
        },
    NewLastTrace =
      Last#trace_state{done = NewLastDone, wakeup_tree = NewLastWakeupTree},
    InitNewState =
      State#scheduler_state{trace = [InitNextTrace, NewLastTrace|Prev]},
    NewState = maybe_log(Event, InitNewState, Index),
  
negative.code:      done        = Done,
       index       = Index,
       graph_ref   = Ref,
       sleeping    = Sleeping,
       wakeup_tree = WakeupTree
      } = Last,
    SchedulingBound =
      case Prev of
        [] -> Last#trace_state.scheduling_bound;
        [P|_] -> P#trace_state.scheduling_bound
      end,
    ?trace(Logger, "~s~n", [?pretty_s(Index, Event)]),
    concuerror_logger:graph_new_node(Logger, Ref, Index, Event),
    AllSleeping = ordsets:union(ordsets:from_list(Done), Sleeping),
  