47 lines
1.2 KiB
C#
47 lines
1.2 KiB
C#
|
////////////////////////////////////////////////////////////////////////////////
|
||
|
//
|
||
|
// Microsoft Research Singularity
|
||
|
//
|
||
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||
|
//
|
||
|
// File: RobinProcessor.cs
|
||
|
//
|
||
|
// Note:
|
||
|
//
|
||
|
|
||
|
using System;
|
||
|
using System.Diagnostics;
|
||
|
using Microsoft.Singularity.Scheduling;
|
||
|
|
||
|
namespace Microsoft.Singularity.Scheduling.Robin
|
||
|
{
|
||
|
/// <summary>
|
||
|
/// </summary>
|
||
|
public class RobinProcessor : ISchedulerProcessor
|
||
|
{
|
||
|
private readonly Processor enclosingProcessor;
|
||
|
public override Processor EnclosingProcessor
|
||
|
{
|
||
|
get { return enclosingProcessor; }
|
||
|
}
|
||
|
|
||
|
internal RobinActivity CurrentActivity;
|
||
|
internal TimeSpan SliceLeft;
|
||
|
internal RobinThread RunningThread;
|
||
|
internal DateTime SchedulingTime;
|
||
|
internal bool NeedToReschedule;
|
||
|
internal bool Idle;
|
||
|
|
||
|
public void Reschedule()
|
||
|
{
|
||
|
NeedToReschedule = true;
|
||
|
}
|
||
|
|
||
|
public RobinProcessor(Processor processor)
|
||
|
{
|
||
|
enclosingProcessor = processor;
|
||
|
SchedulingTime = SchedulerClock.BootTime;
|
||
|
}
|
||
|
}
|
||
|
}
|