mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[platform] unified stream processing for CanonicalPathMap, finally
This commit is contained in:
+7
-16
@@ -15,8 +15,6 @@
|
||||
*/
|
||||
package com.intellij.openapi.vfs.impl.local;
|
||||
|
||||
import com.intellij.concurrency.JobLauncher;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.io.FileSystemUtil;
|
||||
@@ -27,7 +25,10 @@ import com.intellij.util.containers.MultiMap;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.intellij.openapi.util.Pair.pair;
|
||||
@@ -61,19 +62,9 @@ class CanonicalPathMap {
|
||||
|
||||
private static Map<String, String> resolvePaths(Collection<String> recursiveRoots, Collection<String> flatRoots) {
|
||||
Map<String, String> result = ContainerUtil.newConcurrentMap();
|
||||
|
||||
if (ApplicationManager.getApplication() != null) {
|
||||
List<String> roots = ContainerUtil.concat(Arrays.asList(recursiveRoots, flatRoots));
|
||||
JobLauncher.getInstance().invokeConcurrentlyUnderProgress(roots, null, false, false, root -> {
|
||||
ContainerUtil.putIfNotNull(root, FileSystemUtil.resolveSymLink(root), result);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
else {
|
||||
Stream.concat(recursiveRoots.stream(), flatRoots.stream())
|
||||
.forEach(root -> ContainerUtil.putIfNotNull(root, FileSystemUtil.resolveSymLink(root), result));
|
||||
}
|
||||
|
||||
Stream.concat(recursiveRoots.stream(), flatRoots.stream())
|
||||
.parallel()
|
||||
.forEach(root -> ContainerUtil.putIfNotNull(root, FileSystemUtil.resolveSymLink(root), result));
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user