mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-10-01 19:02:13 +07:00
use AtomicInteger in multithreaded searches
This commit is contained in:
+3
-4
@@ -17,8 +17,6 @@ package com.siyeh.ig.performance;
|
||||
|
||||
import com.intellij.codeInspection.InspectionManager;
|
||||
import com.intellij.codeInspection.ui.MultipleCheckboxOptionsPanel;
|
||||
import com.intellij.openapi.extensions.Extensions;
|
||||
import com.intellij.openapi.extensions.ExtensionsArea;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.searches.ClassInheritorsSearch;
|
||||
@@ -35,6 +33,7 @@ import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class MethodMayBeStaticInspection extends BaseInspection {
|
||||
|
||||
@@ -133,11 +132,11 @@ public class MethodMayBeStaticInspection extends BaseInspection {
|
||||
final Query<PsiClass> search = ClassInheritorsSearch.search(containingClass, method.getUseScope(), true, true, false);
|
||||
final boolean[] result = new boolean[1];
|
||||
search.forEach(new Processor<PsiClass>() {
|
||||
int count = 0;
|
||||
AtomicInteger count = new AtomicInteger(0);
|
||||
|
||||
@Override
|
||||
public boolean process(PsiClass subClass) {
|
||||
if (++count > 5) {
|
||||
if (count.incrementAndGet() > 5) {
|
||||
result[0] = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
+2
-3
@@ -61,12 +61,11 @@ public class InheritanceUtil {
|
||||
final Query<PsiClass> search = ClassInheritorsSearch.search(class1, scope, true, true);
|
||||
final boolean[] result = new boolean[1];
|
||||
search.forEach(new Processor<PsiClass>() {
|
||||
int count = 0;
|
||||
AtomicInteger count = new AtomicInteger(0);
|
||||
|
||||
@Override
|
||||
public boolean process(PsiClass inheritor) {
|
||||
count++;
|
||||
if (inheritor.equals(class2) || inheritor.isInheritor(class2, true) || (avoidExpensiveProcessing && count > 20)) {
|
||||
if (inheritor.equals(class2) || inheritor.isInheritor(class2, true) || (avoidExpensiveProcessing && count.incrementAndGet() > 20)) {
|
||||
result[0] = true;
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user