1 write to nodeData
Microsoft.Build.Engine (1)
LocalProvider\LocalNodeProvider.cs (1)
87
nodeData
= new LocalNodeInfo[cpuCount - 1];
107 references to nodeData
Microsoft.Build.Engine (107)
LocalProvider\LocalNodeProvider.cs (107)
91
for (int i = 0; i <
nodeData
.Length; i++)
93
nodeData
[i] = new LocalNodeInfo(lastUsedNodeNumber);
94
lastUsedNodeNumber =
nodeData
[i].NodeNumber + 1;
183
ErrorUtilities.VerifyThrow(nodeIds.Length ==
nodeData
.Length, "Expected an ID for each node");
187
nodeData
[i].NodeId = nodeIds[i];
205
ErrorUtilities.VerifyThrow(nodeIndex <
nodeData
.Length && nodeIndex >= 0, "Node index must be within array boundaries");
209
if (
nodeData
[nodeIndex].NodeState != NodeState.Launched)
211
NodeStatus nodeStatus = new NodeStatus(requestId, false, 0, 0, 0,
nodeData
[nodeIndex].NodeState == NodeState.LaunchInProgress);
212
engineCallback.PostStatus(
nodeData
[nodeIndex].NodeId, nodeStatus, false);
217
engineCallback.PostStatus(
nodeData
[nodeIndex].NodeId, nodeStatus, false);
224
nodeData
[nodeIndex].NodeCommandQueue.Enqueue(callDescriptor);
230
ErrorUtilities.VerifyThrow(nodeIndex <
nodeData
.Length && nodeIndex >= 0, "Node index must be within array boundaries");
232
if (
nodeData
[nodeIndex].NodeState != NodeState.Launched)
240
if (
nodeData
[nodeIndex].NodeState != NodeState.Launched && !shuttingDown)
243
if (
nodeData
[nodeIndex].NodeState == NodeState.NotLaunched)
245
nodeData
[nodeIndex].NodeState = NodeState.LaunchInProgress;
255
nodeData
[nodeIndex].TargetList.AddFirst(new LinkedListNode<BuildRequest>(buildRequest));
261
nodeData
[nodeIndex].NodeCommandQueue.Enqueue(callDescriptor);
269
nodeData
[nodeIndex].NodeCommandQueue.Enqueue(callDescriptor);
275
ErrorUtilities.VerifyThrow(nodeIndex <
nodeData
.Length && nodeIndex >= 0, "Node index must be within array boundaries");
276
ErrorUtilities.VerifyThrow(
nodeData
[nodeIndex].NodeState == NodeState.Launched, "Node must be launched before result can be posted");
280
nodeData
[nodeIndex].NodeCommandQueue.Enqueue(callDescriptor);
315
foreach (LocalNodeInfo nodeInfo in
nodeData
)
328
foreach (LocalNodeInfo nodeInfo in
nodeData
)
348
for (int i = 0; i <
nodeData
.Length; i++)
350
LocalNodeInfo nodeInfo =
nodeData
[i];
376
for (int i = 0; i <
nodeData
.Length; i++)
378
if (
nodeData
[i].NodeState == NodeState.Launched)
390
nodeData
[nodeIndex].NodeCommandQueue.Enqueue(callDescriptor);
398
nodeData
[nodeIndex].NodeCommandQueue.Enqueue(callDescriptor);
410
for (int i = 0; i <
nodeData
.Length; i++)
414
while (
nodeData
[i].NodeState == NodeState.LaunchInProgress && !
nodeData
[i].CommunicationFailed)
419
if (
nodeData
[i].NodeState == NodeState.Launched)
421
if (!
nodeData
[i].CommunicationFailed)
432
nodeData
[i].NodeCommandQueue.Enqueue(callDescriptor);
436
TerminateChildNode(
nodeData
[i].ProcessId);
442
nodeData
[i].NodeState = NodeState.NotLaunched;
477
if (
nodeData
[nodeId].CommunicationFailed)
484
bool isUninitialized =
nodeData
[nodeId].ProcessId == LocalNodeInfo.unInitializedProcessId;
491
bool isInvalidProcessId =
nodeData
[nodeId].ProcessId == LocalNodeInfo.invalidProcessId;
493
if (!isInvalidProcessId && !Process.GetProcessById(
nodeData
[nodeId].ProcessId).HasExited)
504
nodeData
[nodeId].ProcessId = LocalNodeInfo.invalidProcessId;
505
nodeData
[nodeId].CommunicationFailed = true;
513
for (; i <
nodeData
.Length; i++)
515
if (
nodeData
[i].NodeId == nodeId)
517
nodeData
[i].ReleaseNode();
522
ErrorUtilities.VerifyThrow(i <
nodeData
.Length, "Expected to find a node to decrement count");
548
for (; i <
nodeData
.Length; i++)
550
if (
nodeData
[i].NodeId == nodeId)
552
nodeData
[i].ShutdownResponseReceived = true;
558
ErrorUtilities.VerifyThrow(i <
nodeData
.Length, "Expected to find a node to decrement count");
566
for (int i = 0; i <
nodeData
.Length; i++)
568
if (
nodeData
[i].NodeId == nodeId)
570
nodeData
[i].ProcessId = processId;
592
nodeData
[nodeIndex].NodeState = NodeState.NotLaunched;
601
if (!
nodeData
[nodeIndex].CommunicationFailed)
606
nodeData
[nodeIndex].NodeState = NodeState.Launched;
611
LinkedListNode<BuildRequest> current =
nodeData
[nodeIndex].TargetList.First;
612
BuildRequest[] buildRequests = new BuildRequest[
nodeData
[nodeIndex].TargetList.Count];
623
nodeData
[nodeIndex].NodeCommandQueue.Enqueue(callDescriptor);
625
nodeData
[nodeIndex].TargetList = null;
656
if (!checkIfNodeActive(
nodeData
[nodeIndex].NodeNumber))
661
if (
nodeData
[nodeIndex].CommunicationFailed)
667
if (checkIfNodeActive(
nodeData
[nodeIndex].NodeNumber))
669
nodeData
[nodeIndex].SharedMemoryToNode.Reset();
670
nodeData
[nodeIndex].SharedMemoryFromNode.Reset();
674
EventWaitHandle nodeInitiateActivationEvent = new EventWaitHandle(false, EventResetMode.ManualReset, LocalNodeProviderGlobalNames.NodeInitiateActivationEventName(
nodeData
[nodeIndex].NodeNumber));
679
EventWaitHandle nodeActivatedEvent = new EventWaitHandle(false, EventResetMode.ManualReset, LocalNodeProviderGlobalNames.NodeActivedEventName(
nodeData
[nodeIndex].NodeNumber));
688
new LocalCallDescriptorForInitializeNode(environmentVariablesTable, nodeLoggers.ToArray(),
nodeData
[nodeIndex].NodeId, parentGlobalProperties, toolsetSearchLocations, Process.GetCurrentProcess().Id, startupDirectory);
689
nodeData
[nodeIndex].NodeCommandQueue.Enqueue(callDescriptorInit);
691
EventWaitHandle nodeInUseEvent = new EventWaitHandle(false, EventResetMode.ManualReset, LocalNodeProviderGlobalNames.NodeInUseEventName(
nodeData
[nodeIndex].NodeNumber));
705
if (!nodeConnected && checkIfNodeActive(
nodeData
[nodeIndex].NodeNumber))
707
EventWaitHandle nodeShutdownEvent = new EventWaitHandle(false, EventResetMode.ManualReset, LocalNodeProviderGlobalNames.NodeErrorShutdownEventName(
nodeData
[nodeIndex].NodeNumber));
723
DecreaseActiveNodeCount(
nodeData
[nodeIndex].NodeId);
724
nodeData
[nodeIndex].CommunicationFailed = true;
790
string cmdLine = msbuildLocation + " /nologo /oldom /nodemode:" +
nodeData
[nodeIndex].NodeNumber;
796
nodeReadyEvent = new EventWaitHandle(false, EventResetMode.ManualReset, LocalNodeProviderGlobalNames.NodeActiveEventName(
nodeData
[nodeIndex].NodeNumber));
811
nodeData
[nodeIndex].CommunicationFailed = true;
827
if (nodeIndex >= 0 && nodeIndex <
nodeData
.Length)
829
if (decreaseActiveNodeCount && !
nodeData
[nodeIndex].CommunicationFailed)
831
DecreaseActiveNodeCount(
nodeData
[nodeIndex].NodeId);
834
nodeData
[nodeIndex].CommunicationFailed = true;
841
if (nodeIndex < 0 || nodeIndex >=
nodeData
.Length)
848
engineCallback.PostStatus(
nodeData
[nodeIndex].NodeId, nodeStatus, false);
858
WaitHandle[] waitHandles = new WaitHandle[1 +
nodeData
.Length];
860
for (int i = 0; i <
nodeData
.Length; i++)
862
waitHandles[i + 1] =
nodeData
[i].NodeCommandQueue.QueueReadyEvent;
883
nodeData
[nodeIndex].SharedMemoryToNode.Write(
nodeData
[nodeIndex].NodeCommandQueue,
nodeData
[nodeIndex].NodeHiPriCommandQueue, false);
889
if (nodeIndex >= 0 && nodeIndex <
nodeData
.Length)
897
for (int i = 0; i <
nodeData
.Length; i++)
900
if (
nodeData
[i].SharedMemoryToNode != null)
902
nodeData
[i].SharedMemoryToNode.Dispose();
903
nodeData
[i].SharedMemoryToNode = null;
915
WaitHandle[] waitHandles = new WaitHandle[1 +
nodeData
.Length];
917
for (int i = 0; i <
nodeData
.Length; i++)
919
waitHandles[i + 1] =
nodeData
[i].SharedMemoryFromNode.ReadFlag;
940
IList localCallDescriptorList =
nodeData
[nodeIndex].SharedMemoryFromNode.Read();
947
callDescriptor.HostAction(engineCallback, this,
nodeData
[nodeIndex].NodeId);
951
nodeData
[nodeIndex].NodeCommandQueue.Enqueue(callDescriptor.ReplyFromHostAction());
961
if (nodeIndex >= 0 && nodeIndex <
nodeData
.Length)
969
for (int i = 0; i <
nodeData
.Length; i++)
972
if (
nodeData
[i].SharedMemoryFromNode != null)
974
nodeData
[i].SharedMemoryFromNode.Dispose();
975
nodeData
[i].SharedMemoryFromNode = null;