2 instantiations of BuildGrant
MSBuild.Coordinator (2)
CoordinatorServer.cs (2)
274
grant =
new
(connection.Id, connection.ProcessId, requestedNodes, isNested: false);
340
grant = 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
"/>.
42
public
BuildGrant
Grant { get; }
52
public ConnectedClient(Connection connection,
BuildGrant
grant)
CoordinatorServer.cs (17)
28
private readonly Dictionary<Guid,
BuildGrant
> _activeRootGrantsById = [];
189
if (!TryProcessGrantRequest(connection, out
BuildGrant
? grant))
259
private bool TryProcessGrantRequest(Connection connection, [NotNullWhen(true)] out
BuildGrant
? grant)
333
bool TryCreateNestedGrant(Connection connection, Guid grantId, int requestedNodes, [NotNullWhen(true)] out
BuildGrant
? grant)
337
if (_activeRootGrantsById.TryGetValue(grantId, out
BuildGrant
? rootGrant) &&
356
private bool TryAcceptClient(Connection connection,
BuildGrant
grant, [NotNullWhen(true)] out ConnectedClient? client)
420
ImmutableArray<
BuildGrant
> newlyGranted = ReleaseClientAndGrant(client);
426
private ImmutableArray<
BuildGrant
> ReleaseClientAndGrant(ConnectedClient client)
446
private void NotifyNewlyGrantedBuilds(ImmutableArray<
BuildGrant
> newlyGranted)
453
Queue<
BuildGrant
> pendingNotifications = new(newlyGranted.Length);
459
BuildGrant
grant = pendingNotifications.Dequeue();
481
ImmutableArray<
BuildGrant
> appendedGrants = ReleaseClientAndGrant(waitingClient);
488
private void EnqueueNewlyGrantedNotifications(Queue<
BuildGrant
> pendingNotifications, ImmutableArray<
BuildGrant
> newlyGranted)
496
foreach (
BuildGrant
grant in newlyGranted)
502
private void TrackRootGrant(
BuildGrant
grant)
510
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();