Merge remote-tracking branch 'origin/mikhail.golubev/py-attribute-inference' into...
authorMikhail Golubev <mikhail.golubev@jetbrains.com>
Wed, 14 Jan 2015 14:01:58 +0000 (17:01 +0300)
committerMikhail Golubev <mikhail.golubev@jetbrains.com>
Wed, 14 Jan 2015 14:01:58 +0000 (17:01 +0300)
1  2 
python/src/com/jetbrains/python/psi/resolve/PythonPathCache.java

index efa6b813292b600992993efc0d33b832ce135c9d,5eeeea844998b2ff91b7cb1607abcab0b60b098c..87a402df3f67ef61e2cdcf83480f8fc50e19aeb9
@@@ -18,9 -18,9 +18,9 @@@ package com.jetbrains.python.psi.resolv
  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;
  
   * @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>>();
  
 -  protected void clearCache() {
 +  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);
    }