void pushBackToScheduled(SlotKey key, boolean rescheduleImmediately) {
    """
	Take the given slot out of the running group, and put it back into the
	scheduled group. If {@code rescheduleImmediately} is true, the slot will
	be the next slot returned by a call to {@link #getNextScheduled()}. If
	{@code rescheduleImmediately} is false, then the given slot will go to
	the end of the line, as when it was first scheduled by
	{@link #scheduleEligibleSlots(long, long, long)}.
	
	@param key
	@param rescheduleImmediately
    """
        synchronized (scheduledSlots) {
            synchronized (runningSlots) {
                int slot = key.getSlot();
                Granularity gran = key.getGranularity();
                int shard = key.getShard();
                // no need to set dirty/clean here.
                shardStateManager.getSlotStateManager(shard, gran).getAndSetState(slot, UpdateStamp.State.Active);
                scheduledSlots.add(key);
                log.debug("pushBackToScheduled -> added to scheduledSlots: " + key + " size:" + scheduledSlots.size());
                if (rescheduleImmediately) {
                    orderedScheduledSlots.add(0, key);
                } else {
                    orderedScheduledSlots.add(key);
                }
            }
        }
    }
void pushBackToScheduled(SlotKey key, boolean rescheduleImmediately) {
        synchronized (scheduledSlots) {
            synchronized (runningSlots) {
                int slot = key.getSlot();
                Granularity gran = key.getGranularity();
                int shard = key.getShard();
                // no need to set dirty/clean here.
                shardStateManager.getSlotStateManager(shard, gran).getAndSetState(slot, UpdateStamp.State.Active);
                scheduledSlots.add(key);
                log.debug("pushBackToScheduled -> added to scheduledSlots: " + key + " size:" + scheduledSlots.size());
                if (rescheduleImmediately) {
                    orderedScheduledSlots.add(0, key);
                } else {
                    orderedScheduledSlots.add(key);
                }
            }
        }
    }
void pushBackToScheduled ( SlotKey key , boolean rescheduleImmediately ) { synchronized ( scheduledSlots ) { synchronized ( runningSlots ) { int slot = key . getSlot ( ) ; Granularity gran = key . getGranularity ( ) ; int shard = key . getShard ( ) ; // no need to set dirty/clean here. shardStateManager . getSlotStateManager ( shard , gran ) . getAndSetState ( slot , UpdateStamp . State . Active ) ; scheduledSlots . add ( key ) ; log . debug ( "pushBackToScheduled -> added to scheduledSlots: " + key + " size:" + scheduledSlots . size ( ) ) ; if ( rescheduleImmediately ) { orderedScheduledSlots . add ( 0 , key ) ; } else { orderedScheduledSlots . add ( key ) ; } } } }
Take the given slot out of the running group, and put it back into the
scheduled group. If {@code rescheduleImmediately} is true, the slot will
be the next slot returned by a call to {@link #getNextScheduled()}. If
{@code rescheduleImmediately} is false, then the given slot will go to
the end of the line, as when it was first scheduled by
{@link #scheduleEligibleSlots(long, long, long)}.

@param key
@param rescheduleImmediately
Take the given slot out of the running group and put it back into the scheduled group . If { @code rescheduleImmediately } is true the slot will be the next slot returned by a call to { @link #getNextScheduled () } . If { @code rescheduleImmediately } is false then the given slot will go to the end of the line as when it was first scheduled by { @link #scheduleEligibleSlots ( long long long ) } .