Merge remote-tracking branch 'origin/mikhail.golubev/py-attribute-inference' into...
[idea/community.git] / python / src / com / jetbrains / python / psi / resolve / PythonPathCache.java
index efa6b813292b600992993efc0d33b832ce135c9d..87a402df3f67ef61e2cdcf83480f8fc50e19aeb9 100644 (file)
@@ -18,9 +18,9 @@ package com.jetbrains.python.psi.resolve;
 import com.intellij.openapi.vfs.*;
 import com.intellij.psi.PsiElement;
 import com.intellij.psi.util.QualifiedName;
+import com.intellij.util.containers.ConcurrentHashMap;
 import org.jetbrains.annotations.NotNull;
 
-import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -28,27 +28,27 @@ import java.util.Map;
  * @author yole
  */
 public abstract class PythonPathCache {
-  private final Map<QualifiedName, List<PsiElement>> myCache = new HashMap<QualifiedName, List<PsiElement>>();
-  private final Map<VirtualFile, List<QualifiedName>> myQNameCache = new HashMap<VirtualFile, List<QualifiedName>>();
+  private final Map<QualifiedName, List<PsiElement>> myCache = new ConcurrentHashMap<QualifiedName, List<PsiElement>>();
+  private final Map<VirtualFile, List<QualifiedName>> myQNameCache = new ConcurrentHashMap<VirtualFile, List<QualifiedName>>();
 
   public void clearCache() {
     myCache.clear();
     myQNameCache.clear();
   }
 
-  public synchronized List<PsiElement> get(QualifiedName qualifiedName) {
+  public List<PsiElement> get(QualifiedName qualifiedName) {
     return myCache.get(qualifiedName);
   }
 
-  public synchronized void put(QualifiedName qualifiedName, List<PsiElement> results) {
+  public void put(QualifiedName qualifiedName, List<PsiElement> results) {
     myCache.put(qualifiedName, results);
   }
 
-  public synchronized List<QualifiedName> getNames(VirtualFile vFile) {
+  public List<QualifiedName> getNames(VirtualFile vFile) {
     return myQNameCache.get(vFile);
   }
   
-  public synchronized void putNames(VirtualFile vFile, List<QualifiedName> qNames) {
+  public void putNames(VirtualFile vFile, List<QualifiedName> qNames) {
     myQNameCache.put(vFile, qNames);
   }