2 instantiations of BuildGrant
MSBuild.Coordinator (2)
CoordinatorServer.cs (2)
274grant = new(connection.Id, connection.ProcessId, requestedNodes, isNested: false); 340grant = new BuildGrant(connection.Id, connection.ProcessId, requestedNodes, grantId, isNested: true)
34 references to BuildGrant
MSBuild.Coordinator (34)
CoordinatorServer.ConnectedClient.cs (3)
15/// Tracks an accepted MSBuild client alongside its <see cref="BuildGrant"/>. 42public BuildGrant Grant { get; } 52public ConnectedClient(Connection connection, BuildGrant grant)
CoordinatorServer.cs (17)
28private readonly Dictionary<Guid, BuildGrant> _activeRootGrantsById = []; 189if (!TryProcessGrantRequest(connection, out BuildGrant? grant)) 259private bool TryProcessGrantRequest(Connection connection, [NotNullWhen(true)] out BuildGrant? grant) 333bool TryCreateNestedGrant(Connection connection, Guid grantId, int requestedNodes, [NotNullWhen(true)] out BuildGrant? grant) 337if (_activeRootGrantsById.TryGetValue(grantId, out BuildGrant? rootGrant) && 356private bool TryAcceptClient(Connection connection, BuildGrant grant, [NotNullWhen(true)] out ConnectedClient? client) 420ImmutableArray<BuildGrant> newlyGranted = ReleaseClientAndGrant(client); 426private ImmutableArray<BuildGrant> ReleaseClientAndGrant(ConnectedClient client) 446private void NotifyNewlyGrantedBuilds(ImmutableArray<BuildGrant> newlyGranted) 453Queue<BuildGrant> pendingNotifications = new(newlyGranted.Length); 459BuildGrant grant = pendingNotifications.Dequeue(); 481ImmutableArray<BuildGrant> appendedGrants = ReleaseClientAndGrant(waitingClient); 488private void EnqueueNewlyGrantedNotifications(Queue<BuildGrant> pendingNotifications, ImmutableArray<BuildGrant> newlyGranted) 496foreach (BuildGrant grant in newlyGranted) 502private void TrackRootGrant(BuildGrant grant) 510private static void WriteGrantMessage(ConnectedClient client, BuildGrant grant)
CoordinatorTelemetry.cs (4)
42public static void RecordGrantIssued(BuildGrant grant, int queueDepth, int activeBuilds, int allocatedNodes) 59public static void RecordGrantDeferred(BuildGrant grant, int queueDepth) 73public static void RecordDeferredGrantFulfilled(BuildGrant grant, int queueDepth, int activeBuilds, int allocatedNodes) 89public static void RecordGrantReleased(BuildGrant grant, int queueDepth, int activeBuilds, int allocatedNodes)
NodeBudgetManager.cs (10)
16private readonly List<BuildGrant> _activeGrants = []; 17private readonly Queue<BuildGrant> _waitQueue = new(); 77public int TryGrant(BuildGrant grant) 127public ImmutableArray<BuildGrant> Release(BuildGrant grant) 163private ImmutableArray<BuildGrant> DrainWaitQueue_NoLock() 165using RefArrayBuilder<BuildGrant> newlyGranted = new(); 173BuildGrant waiting = _waitQueue.Dequeue(); 187private void RemoveFromWaitQueue_NoLock(BuildGrant grant) 194BuildGrant queued = _waitQueue.Dequeue();