Remove usage of SynchronizedBatchCallback findTargetsBeneathDirectoryAsync; by design, the callback passed in there is thread safe. A previous change accidentally introduced this unnecessary synchronization.
Also move SynchronizedBatchCallback to the file with its only current usage.
--
PiperOrigin-RevId: 149809083
MOS_MIGRATED_REVID=149809083
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
index b68ef43..901ef21 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/RecursivePackageProviderBackedTargetPatternResolver.java
@@ -45,7 +45,6 @@
import com.google.devtools.build.lib.pkgcache.RecursivePackageProvider;
import com.google.devtools.build.lib.pkgcache.TargetPatternResolverUtil;
import com.google.devtools.build.lib.util.BatchCallback;
-import com.google.devtools.build.lib.util.SynchronizedBatchCallback;
import com.google.devtools.build.lib.util.ThreadSafeBatchCallback;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.ArrayList;
@@ -183,6 +182,24 @@
return target.getTargetKind();
}
+ /**
+ * A {@link ThreadSafeBatchCallback} that trivially delegates to a {@link BatchCallback} in a
+ * synchronized manner.
+ */
+ private static class SynchronizedBatchCallback<T, E extends Exception>
+ implements ThreadSafeBatchCallback<T, E> {
+ private final BatchCallback<T, E> delegate;
+
+ public SynchronizedBatchCallback(BatchCallback<T, E> delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public synchronized void process(Iterable<T> partialResult) throws E, InterruptedException {
+ delegate.process(partialResult);
+ }
+ }
+
@Override
public <E extends Exception> void findTargetsBeneathDirectory(
final RepositoryName repository,
@@ -225,7 +242,7 @@
directory,
rulesOnly,
excludedSubdirectories,
- new SynchronizedBatchCallback<Target, E>(callback),
+ callback,
executor);
}