// return true if file was added to queue
 private boolean queueUpdate(@NotNull VirtualFile file) {
   synchronized (filesToResolve) {
     if (!(file instanceof VirtualFileWithId)) return false;
     int fileId = getAbsId(file);
     countAndMarkUnresolved(file, new LinkedHashSet<VirtualFile>(), true);
     boolean alreadyAdded = fileIsInQueue.set(fileId);
     if (!alreadyAdded) {
       filesToResolve.add(file);
     }
     upToDate = false;
     wakeUpUnderLock();
     return !alreadyAdded;
   }
 }