diff --git a/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/TransferThreadPool.java b/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/TransferThreadPool.java index 4c41e4050c4..6e1e0111a96 100644 --- a/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/TransferThreadPool.java +++ b/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility/TransferThreadPool.java @@ -26,7 +26,7 @@ import com.amazonaws.logging.LogFactory; class TransferThreadPool { - + private static final Log LOGGER = LogFactory.getLog(TransferService.class); private static ExecutorService executorMainTask; @@ -34,15 +34,14 @@ class TransferThreadPool { static synchronized void init(final int transferThreadPoolSize) { LOGGER.debug("Initializing the thread pool of size: " + transferThreadPoolSize); - + final int poolSize = Math.max((int) (Math.ceil((double) transferThreadPoolSize / 2)), 1); - + if (executorMainTask == null) { executorMainTask = buildExecutor(poolSize); } if (executorPartTask == null) { - // Upload individual parts serially - executorPartTask = buildExecutor(1); + executorPartTask = buildExecutor(poolSize); } }