This commit is contained in:
Copilot 2026-04-14 11:13:13 -05:00 committed by GitHub
commit d3ef79cc58
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -339,17 +339,21 @@ namespace PepperDash.Essentials.Core
RoutingInputPort goodInputPort = null; RoutingInputPort goodInputPort = null;
// Take a snapshot to avoid InvalidOperationException if TieLineCollection.Default is
// modified concurrently (e.g. NVX tie line registration during route requests).
var tieLines = TieLineCollection.Default.ToList();
IEnumerable<TieLine> destinationTieLines; IEnumerable<TieLine> destinationTieLines;
TieLine directTie = null; TieLine directTie = null;
if (destinationPort == null) if (destinationPort == null)
{ {
destinationTieLines = TieLineCollection.Default.Where(t => destinationTieLines = tieLines.Where(t =>
t.DestinationPort.ParentDevice.Key == destination.Key && (t.Type.HasFlag(signalType) || signalType == eRoutingSignalType.AudioVideo)); t.DestinationPort.ParentDevice.Key == destination.Key && (t.Type.HasFlag(signalType) || signalType == eRoutingSignalType.AudioVideo));
} }
else else
{ {
destinationTieLines = TieLineCollection.Default.Where(t => t.DestinationPort.ParentDevice.Key == destination.Key && t.DestinationPort.Key == destinationPort.Key && (t.Type.HasFlag(signalType))); destinationTieLines = tieLines.Where(t => t.DestinationPort.ParentDevice.Key == destination.Key && t.DestinationPort.Key == destinationPort.Key && (t.Type.HasFlag(signalType)));
} }
// find the TieLine without a port // find the TieLine without a port