1 write to _availableNodes
Microsoft.Build (1)
BackEnd\Components\Scheduler\Scheduler.cs (1)
566_availableNodes = new Dictionary<int, NodeInfo>(8);
24 references to _availableNodes
Microsoft.Build (24)
BackEnd\Components\Scheduler\Scheduler.cs (24)
516_availableNodes[nodeInfo.NodeId] = nodeInfo; 727foreach (int availableNodeId in _availableNodes.Keys) 752if (_availableNodes.Count > 0) 808TraceScheduler("Requests scheduled: {0} Unassigned Requests: {1} Blocked Requests: {2} Unblockable Requests: {3} Free Nodes: {4}/{5} Responses: {6}", nodesFreeToDoWorkPriorToScheduling - idleNodes.Count, _schedulingData.UnscheduledRequestsCount, _schedulingData.BlockedRequestsCount, _schedulingData.ReadyRequestsCount, idleNodes.Count, _availableNodes.Count, responses.Count); 1046IEnumerable<int> nodesByConfigurationCountAscending = _availableNodes.Keys.OrderBy(x => _schedulingData.GetConfigurationsCountByNode(x, excludeTraversals: true, _configCache)); 1186if (_availableNodes[nodeId].CanServiceRequestWithAffinity(nodeAffinity)) 1311Dictionary<int, int> configurationCountsByNode = new Dictionary<int, int>(_availableNodes.Count); 1317foreach (int availableNodeId in _availableNodes.Keys) 1323configurationCountLimit = Math.Max(1, (int)Math.Ceiling(configurationCountLimit * _customSchedulerForSQLConfigurationLimitMultiplier / _availableNodes.Count)); 1326List<int> nodesByConfigurationCountAscending = new List<int>(_availableNodes.Keys); 1384bool mustSendConfigurationToNode = _availableNodes[nodeId].AssignConfiguration(request.BuildRequest.ConfigurationId); 1475bool result = _availableNodes[nodeId].CanServiceRequestWithAffinity(affinity); 1749if (!_availableNodes[assignedNodeId].CanServiceRequestWithAffinity(GetNodeAffinityForRequest(request))) 1759existingRequestAffinity = (_availableNodes[assignedNodeId].ProviderType == NodeProviderType.InProc) ? NodeAffinity.InProc : NodeAffinity.OutOfProc; 1934foreach (int nodeId in _availableNodes.Keys) 2259foreach (NodeInfo node in _availableNodes.Values) 2328int[] currentWork = new int[_availableNodes.Count]; 2335TimeSpan[] nodeActiveTimes = new TimeSpan[_availableNodes.Count]; 2336DateTime[] nodeStartTimes = new DateTime[_availableNodes.Count]; 2339Dictionary<int, int> availableNodeIdsToIndex = new Dictionary<int, int>(_availableNodes.Count); 2340int[] indexToAvailableNodeId = new int[_availableNodes.Count]; 2343foreach (int availableNodeId in _availableNodes.Keys) 2454loggingService.LogComment(context, MessageImportance.Normal, "NodeUtilizationSummary", utilitzationPercentages.ToString(), (utilizationAverage / (double)_availableNodes.Count) * 100); 2633foreach (int nodeId in _availableNodes.Keys)