@@ -148,7 +148,7 @@ public List<TTTrain> ProcessTimetable(string[] arguments, CancellationToken canc
148
148
149
149
// reduce trainlist using player train info and parameters
150
150
bool addPathNoLoadFailure ;
151
- trainList = BuildAITrains ( trainInfoList , playerTrain , arguments , out addPathNoLoadFailure ) ;
151
+ trainList = BuildAITrains ( cancellation , trainInfoList , playerTrain , arguments , out addPathNoLoadFailure ) ;
152
152
if ( ! addPathNoLoadFailure ) loadPathNoFailure = false ;
153
153
154
154
// set references (required to process commands)
@@ -752,13 +752,15 @@ private TTTrainInfo GetPlayerTrain(ref List<TTTrainInfo> allTrains, string[] arg
752
752
/// <param name="allTrains"></param>
753
753
/// <param name="playerTrain"></param>
754
754
/// <param name="arguments"></param>
755
- private List < TTTrain > BuildAITrains ( List < TTTrainInfo > allTrains , TTTrainInfo playerTrain , string [ ] arguments , out bool allPathsLoaded )
755
+ private List < TTTrain > BuildAITrains ( CancellationToken cancellation , List < TTTrainInfo > allTrains , TTTrainInfo playerTrain , string [ ] arguments , out bool allPathsLoaded )
756
756
{
757
757
allPathsLoaded = true ;
758
758
List < TTTrain > trainList = new List < TTTrain > ( ) ;
759
759
760
760
foreach ( TTTrainInfo reqTrain in allTrains )
761
761
{
762
+ if ( cancellation . IsCancellationRequested ) continue ; // ping watchdog token
763
+
762
764
// create train route
763
765
if ( TrainRouteXRef . ContainsKey ( reqTrain . Index ) && Paths . ContainsKey ( TrainRouteXRef [ reqTrain . Index ] ) )
764
766
{
0 commit comments