Inspectopedia
 
2024.3

Cancellation check in loops

Warning
Reliability
New
Last modified: 03 December 2024

Reports loops, forEach-like methods, and ContainerUtil.process() with missing cancellation checks.

Runs only within the methods with com.intellij.util.concurrency.annotations.RequiresReadLock annotation.

Example:

In the case of nested loops with nothing in between:

In blocking context com.intellij.openapi.progress.ProgressManager.checkCanceled() should be used, while com.intellij.openapi.progress.CoroutinesKt.checkCancelled() should be used in suspending one.

See Background Processes Cancellation in IntelliJ Platform Plugin SDK docs for more details.

New in 2023.1