protected override void YieldTask(SystemTaskBase task) { lock (this.instanceLock) { this.tasksWaitingExecution.AddLast(task); } }
protected override void CompleteTask(SystemTaskBase task) { MrsSystemTask mrsSystemTask = task as MrsSystemTask; IJob job = mrsSystemTask.Job; job.ProcessTaskExecutionResult(mrsSystemTask); switch (job.State) { case JobState.Runnable: lock (this.instanceLock) { lock (JobScheduler.staticLock) { this.runningJobs.Remove(job); JobScheduler.RunnableJobs.Add(job); } } return; case JobState.Failed: lock (this.instanceLock) { job.RevertToPreviousUnthrottledState(); this.runningJobs.Remove(job); } this.OnJobStateChanged(job, job.State); return; default: return; } }
protected override void InternalLogActivityEvent(IActivityScope activityScope, ActivityEventType eventType) { object userState = activityScope.UserState; AssistantBase assistantBase = null; string assistantShortName; if (activityScope.ActivityType == ActivityType.Global) { assistantShortName = "GlobalActivity"; } else { SystemTaskBase systemTaskBase = userState as SystemTaskBase; if (systemTaskBase != null) { assistantShortName = systemTaskBase.Workload.Id; } else { AssistantBase assistantBase2 = userState as AssistantBase; if (assistantBase2 == null) { return; } assistantBase = assistantBase2; assistantShortName = assistantBase.NonLocalizedName; } } AssistantsEventType eventType2; switch (eventType) { case ActivityEventType.SuspendActivity: eventType2 = AssistantsEventType.SuspendActivity; goto IL_92; case ActivityEventType.EndActivity: eventType2 = AssistantsEventType.EndActivity; goto IL_92; } base.SafeTraceDebug(0L, "Skip logging ActivityEvent '{0}'.", new object[] { eventType }); return; IL_92: List <KeyValuePair <string, object> > customData = WorkloadManagementLogger.FormatWlmActivity(activityScope, true); AssistantsLog.InternalLogRow(activityScope.ActivityId, assistantShortName, assistantBase, eventType2, customData, Guid.Empty); }