mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-08-25 17:07:05 +07:00
Contention on getInstance() for quite a few services relaxed.
This commit is contained in:
@@ -30,7 +30,6 @@ import com.intellij.openapi.util.NotNullLazyKey;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.impl.PsiManagerEx;
|
||||
import com.intellij.util.ConcurrencyUtil;
|
||||
import com.intellij.util.NotNullFunction;
|
||||
import com.intellij.util.containers.ConcurrentWeakHashMap;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -44,12 +43,7 @@ public class ControlFlowFactory {
|
||||
// psiElements hold weakly, controlFlows softly
|
||||
private final ConcurrentMap<PsiElement, Reference<CopyOnWriteArrayList<ControlFlowContext>>> cachedFlows = new ConcurrentWeakHashMap<PsiElement, Reference<CopyOnWriteArrayList<ControlFlowContext>>>();
|
||||
|
||||
private static final NotNullLazyKey<ControlFlowFactory, Project> INSTANCE_KEY = NotNullLazyKey.create("ControlFlowFactory.Instance.Cache", new NotNullFunction<Project, ControlFlowFactory>() {
|
||||
@NotNull
|
||||
public ControlFlowFactory fun(final Project project) {
|
||||
return ServiceManager.getService(project, ControlFlowFactory.class);
|
||||
}
|
||||
});
|
||||
private static final NotNullLazyKey<ControlFlowFactory, Project> INSTANCE_KEY = ServiceManager.createLazyKey(ControlFlowFactory.class);
|
||||
|
||||
public static ControlFlowFactory getInstance(Project project) {
|
||||
return INSTANCE_KEY.getValue(project);
|
||||
|
||||
@@ -31,7 +31,6 @@ import com.intellij.psi.PsiVariable;
|
||||
import com.intellij.psi.impl.PsiManagerEx;
|
||||
import com.intellij.util.ConcurrencyUtil;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.NotNullFunction;
|
||||
import com.intellij.util.containers.ConcurrentWeakHashMap;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -44,12 +43,7 @@ import java.util.concurrent.ConcurrentMap;
|
||||
public class JavaResolveCache {
|
||||
private static final Logger LOG = Logger.getInstance("#com.intellij.psi.impl.source.resolve.JavaResolveCache");
|
||||
|
||||
private static final NotNullLazyKey<JavaResolveCache, Project> INSTANCE_KEY = NotNullLazyKey.create("JavaResolveCache.Instance.Cache", new NotNullFunction<Project, JavaResolveCache>() {
|
||||
@NotNull
|
||||
public JavaResolveCache fun(final Project project) {
|
||||
return ServiceManager.getService(project, JavaResolveCache.class);
|
||||
}
|
||||
});
|
||||
private static final NotNullLazyKey<JavaResolveCache, Project> INSTANCE_KEY = ServiceManager.createLazyKey(JavaResolveCache.class);
|
||||
|
||||
public static JavaResolveCache getInstance(Project project) {
|
||||
return INSTANCE_KEY.getValue(project);
|
||||
|
||||
Reference in New Issue
Block a user