private void HandleNodeBuildComplete(NodeBuildComplete buildComplete) { _shutdownReason = buildComplete.PrepareForReuse ? NodeEngineShutdownReason.BuildCompleteReuse : NodeEngineShutdownReason.BuildComplete; if (_shutdownReason == NodeEngineShutdownReason.BuildCompleteReuse) { ProcessPriorityClass priorityClass = Process.GetCurrentProcess().PriorityClass; if (priorityClass != ProcessPriorityClass.Normal && priorityClass != ProcessPriorityClass.BelowNormal) { // This isn't a priority class known by MSBuild. We should avoid connecting to this node. _shutdownReason = NodeEngineShutdownReason.BuildComplete; } else { bool lowPriority = priorityClass == ProcessPriorityClass.BelowNormal; if (_nodeEndpoint.LowPriority != lowPriority) { if (!lowPriority || NativeMethodsShared.IsWindows) { Process.GetCurrentProcess().PriorityClass = lowPriority ? ProcessPriorityClass.Normal : ProcessPriorityClass.BelowNormal; } else { // On *nix, we can't adjust the priority up, so to avoid using this node at the wrong priority, we should not be reused. _shutdownReason = NodeEngineShutdownReason.BuildComplete; } } } } _shutdownEvent.Set(); }
/// <summary> /// Handles the NodeBuildComplete packet. /// </summary> private void HandleNodeBuildComplete(NodeBuildComplete buildComplete) { ErrorUtilities.VerifyThrow(!_isTaskExecuting, "We should never have a task in the process of executing when we receive NodeBuildComplete."); _shutdownReason = buildComplete.PrepareForReuse ? NodeEngineShutdownReason.BuildCompleteReuse : NodeEngineShutdownReason.BuildComplete; _shutdownEvent.Set(); }
private void HandleNodeBuildComplete(NodeBuildComplete buildComplete) { _shutdownReason = buildComplete.PrepareForReuse ? NodeEngineShutdownReason.BuildCompleteReuse : NodeEngineShutdownReason.BuildComplete; _shutdownEvent.Set(); }