diff --git a/imagepipeline/src/main/java/com/facebook/imagepipeline/core/DefaultExecutorSupplier.java b/imagepipeline/src/main/java/com/facebook/imagepipeline/core/DefaultExecutorSupplier.java index dcd8de1752..f47804c6f6 100644 --- a/imagepipeline/src/main/java/com/facebook/imagepipeline/core/DefaultExecutorSupplier.java +++ b/imagepipeline/src/main/java/com/facebook/imagepipeline/core/DefaultExecutorSupplier.java @@ -60,12 +60,12 @@ public Executor forDecode() { } @Override - public Executor forTransform() { + public Executor forBackgroundTasks() { return mCpuBoundExecutor; } @Override - public Executor forBackground() { + public Executor forLightweightBackgroundTasks() { return mCpuBoundExecutor; } } diff --git a/imagepipeline/src/main/java/com/facebook/imagepipeline/core/ExecutorSupplier.java b/imagepipeline/src/main/java/com/facebook/imagepipeline/core/ExecutorSupplier.java index 7331a12ac6..18e132d48f 100644 --- a/imagepipeline/src/main/java/com/facebook/imagepipeline/core/ExecutorSupplier.java +++ b/imagepipeline/src/main/java/com/facebook/imagepipeline/core/ExecutorSupplier.java @@ -34,9 +34,15 @@ public interface ExecutorSupplier { /** Executor used for all decodes. */ Executor forDecode(); - /** Executor used for all image transformations, such as transcoding, resizing, and rotating. */ - Executor forTransform(); - - /** Executor used for background operations, such as postprocessing. */ - Executor forBackground(); + /** + * Executor used for background tasks such as image transcoding, resizing, rotating and + * post processing. + */ + Executor forBackgroundTasks(); + + /** + * Executor used for lightweight background operations, such as handing request off the + * main thread. + */ + Executor forLightweightBackgroundTasks(); } diff --git a/imagepipeline/src/main/java/com/facebook/imagepipeline/core/ProducerFactory.java b/imagepipeline/src/main/java/com/facebook/imagepipeline/core/ProducerFactory.java index 86b43c3078..a6d4afb8fc 100644 --- a/imagepipeline/src/main/java/com/facebook/imagepipeline/core/ProducerFactory.java +++ b/imagepipeline/src/main/java/com/facebook/imagepipeline/core/ProducerFactory.java @@ -141,7 +141,7 @@ public static BranchOnSeparateImagesProducer newBranchOnSeparateImagesProducer( } public DataFetchProducer newDataFetchProducer() { - return new DataFetchProducer(mExecutorSupplier.forBackground(), mPooledByteBufferFactory); + return new DataFetchProducer(mPooledByteBufferFactory); } public DecodeProducer newDecodeProducer( @@ -221,7 +221,7 @@ public static NullProducer newNullProducer() { public PostprocessorProducer newPostprocessorProducer( Producer> nextProducer) { return new PostprocessorProducer( - nextProducer, mPlatformBitmapFactory, mExecutorSupplier.forBackground()); + nextProducer, mPlatformBitmapFactory, mExecutorSupplier.forBackgroundTasks()); } public static RemoveImageTransformMetaDataProducer newRemoveImageTransformMetaDataProducer( @@ -232,7 +232,7 @@ public static RemoveImageTransformMetaDataProducer newRemoveImageTransformMetaDa public ResizeAndRotateProducer newResizeAndRotateProducer( Producer, ImageTransformMetaData>> nextProducer) { return new ResizeAndRotateProducer( - mExecutorSupplier.forTransform(), + mExecutorSupplier.forBackgroundTasks(), mPooledByteBufferFactory, nextProducer); } @@ -242,7 +242,9 @@ public static SwallowResultProducer newSwallowResultProducer(Producer } public ThreadHandoffProducer newBackgroundThreadHandoffProducer(Producer nextProducer) { - return new ThreadHandoffProducer(mExecutorSupplier.forBackground(), nextProducer); + return new ThreadHandoffProducer( + mExecutorSupplier.forLightweightBackgroundTasks(), + nextProducer); } public ThrottlingProducer newThrottlingProducer( @@ -250,14 +252,14 @@ public ThrottlingProducer newThrottlingProducer( Producer nextProducer) { return new ThrottlingProducer( maxSimultaneousRequests, - mExecutorSupplier.forBackground(), + mExecutorSupplier.forLightweightBackgroundTasks(), nextProducer); } public WebpTranscodeProducer newWebpTranscodeProducer( Producer> nextProducer) { return new WebpTranscodeProducer( - mExecutorSupplier.forTransform(), + mExecutorSupplier.forBackgroundTasks(), mPooledByteBufferFactory, nextProducer); } diff --git a/imagepipeline/src/main/java/com/facebook/imagepipeline/producers/DataFetchProducer.java b/imagepipeline/src/main/java/com/facebook/imagepipeline/producers/DataFetchProducer.java index 0399446e25..0b03f742b7 100644 --- a/imagepipeline/src/main/java/com/facebook/imagepipeline/producers/DataFetchProducer.java +++ b/imagepipeline/src/main/java/com/facebook/imagepipeline/producers/DataFetchProducer.java @@ -17,6 +17,7 @@ import android.net.Uri; import android.util.Base64; +import com.facebook.common.executors.CallerThreadExecutor; import com.facebook.common.internal.Preconditions; import com.facebook.common.internal.VisibleForTesting; import com.facebook.imagepipeline.memory.PooledByteBufferFactory; @@ -39,9 +40,8 @@ public class DataFetchProducer extends LocalFetchProducer { private static final String PRODUCER_NAME = "DataFetchProducer"; public DataFetchProducer( - Executor executor, PooledByteBufferFactory pooledByteBufferFactory) { - super(executor, pooledByteBufferFactory); + super(CallerThreadExecutor.getInstance(), pooledByteBufferFactory); } @Override