2 instantiations of BuildGrant
MSBuild.Coordinator (2)
CoordinatorServer.cs (2)
298
grant =
new
(connection.Id, connection.ProcessId, requestedNodes, isNested: false);
364
grant = new
BuildGrant
(connection.Id, connection.ProcessId, requestedNodes, grantId, isNested: true)
33 references to BuildGrant
MSBuild.Coordinator (33)
CoordinatorServer.ConnectedClient.cs (2)
42
public
BuildGrant
Grant { get; }
52
public ConnectedClient(Connection connection,
BuildGrant
grant)
CoordinatorServer.cs (17)
32
private readonly Dictionary<Guid,
BuildGrant
> _activeRootGrantsById = [];
213
if (!TryProcessGrantRequest(connection, out
BuildGrant
? grant))
283
private bool TryProcessGrantRequest(Connection connection, [NotNullWhen(true)] out
BuildGrant
? grant)
357
bool TryCreateNestedGrant(Connection connection, Guid grantId, int requestedNodes, [NotNullWhen(true)] out
BuildGrant
? grant)
361
if (_activeRootGrantsById.TryGetValue(grantId, out
BuildGrant
? rootGrant) &&
380
private bool TryAcceptClient(Connection connection,
BuildGrant
grant, [NotNullWhen(true)] out ConnectedClient? client)
444
ImmutableArray<
BuildGrant
> newlyGranted = ReleaseClientAndGrant(client);
450
private ImmutableArray<
BuildGrant
> ReleaseClientAndGrant(ConnectedClient client)
470
private void NotifyNewlyGrantedBuilds(ImmutableArray<
BuildGrant
> newlyGranted)
477
Queue<
BuildGrant
> pendingNotifications = new(newlyGranted.Length);
483
BuildGrant
grant = pendingNotifications.Dequeue();
505
ImmutableArray<
BuildGrant
> appendedGrants = ReleaseClientAndGrant(waitingClient);
512
private void EnqueueNewlyGrantedNotifications(Queue<
BuildGrant
> pendingNotifications, ImmutableArray<
BuildGrant
> newlyGranted)
520
foreach (
BuildGrant
grant in newlyGranted)
526
private void TrackRootGrant(
BuildGrant
grant)
534
private static void WriteGrantMessage(ConnectedClient client,
BuildGrant
grant)
CoordinatorTelemetry.cs (4)
42
public static void RecordGrantIssued(
BuildGrant
grant, int queueDepth, int activeBuilds, int allocatedNodes)
59
public static void RecordGrantDeferred(
BuildGrant
grant, int queueDepth)
73
public static void RecordDeferredGrantFulfilled(
BuildGrant
grant, int queueDepth, int activeBuilds, int allocatedNodes)
89
public static void RecordGrantReleased(
BuildGrant
grant, int queueDepth, int activeBuilds, int allocatedNodes)
NodeBudgetManager.cs (10)
16
private readonly List<
BuildGrant
> _activeGrants = [];
17
private readonly Queue<
BuildGrant
> _waitQueue = new();
77
public int TryGrant(
BuildGrant
grant)
127
public ImmutableArray<
BuildGrant
> Release(
BuildGrant
grant)
163
private ImmutableArray<
BuildGrant
> DrainWaitQueue_NoLock()
165
using RefArrayBuilder<
BuildGrant
> newlyGranted = new();
173
BuildGrant
waiting = _waitQueue.Dequeue();
187
private void RemoveFromWaitQueue_NoLock(
BuildGrant
grant)
194
BuildGrant
queued = _waitQueue.Dequeue();