@@ -38,6 +38,8 @@ public class SnykTasksService
3838
3939 private ISnykServiceProvider serviceProvider ;
4040
41+ private object cancelTasksLock ;
42+
4143 /// <summary>
4244 /// Initializes a new instance of the <see cref="SnykTasksService"/> class.
4345 /// </summary>
@@ -168,21 +170,24 @@ public static async Task InitializeAsync(ISnykServiceProvider serviceProvider)
168170 /// </summary>
169171 public void CancelTasks ( )
170172 {
171- try
173+ lock ( this . cancelTasksLock )
172174 {
173- this . isOssScanning = false ;
174- this . isSnykCodeScanning = false ;
175- this . isCliDownloading = false ;
175+ try
176+ {
177+ this . isOssScanning = false ;
178+ this . isSnykCodeScanning = false ;
179+ this . isCliDownloading = false ;
176180
177- this . CancelTask ( ref this . ossScanTokenSource ) ;
178- this . CancelTask ( ref this . snykCodeScanTokenSource ) ;
179- this . CancelTask ( ref this . downloadCliTokenSource ) ;
181+ this . CancelTask ( ref this . ossScanTokenSource ) ;
182+ this . CancelTask ( ref this . snykCodeScanTokenSource ) ;
183+ this . CancelTask ( ref this . downloadCliTokenSource ) ;
180184
181- this . serviceProvider . OssService . StopScan ( ) ;
182- }
183- catch ( Exception ex )
184- {
185- Logger . Error ( ex , "Error on cancel tasks" ) ;
185+ this . serviceProvider . OssService . StopScan ( ) ;
186+ }
187+ catch ( Exception ex )
188+ {
189+ Logger . Error ( ex , "Error on cancel tasks" ) ;
190+ }
186191 }
187192 }
188193
0 commit comments