Introduce thread priorities for threads and handlerthreads.

This commit is contained in:
Clark
2023-03-08 17:29:44 -05:00
committed by Greyson Parrelli
parent 2cef06cd6e
commit 79a062c838
22 changed files with 88 additions and 33 deletions

View File

@@ -7,6 +7,7 @@ import androidx.annotation.NonNull;
import com.annimon.stream.Stream;
import org.signal.core.util.ThreadUtil;
import org.signal.core.util.logging.Log;
import java.util.List;
@@ -30,7 +31,7 @@ class InAppScheduler implements Scheduler {
private final Handler handler;
InAppScheduler(@NonNull JobManager jobManager) {
HandlerThread handlerThread = new HandlerThread("InAppScheduler");
HandlerThread handlerThread = new HandlerThread("InAppScheduler", ThreadUtil.PRIORITY_BACKGROUND_THREAD);
handlerThread.start();
this.jobManager = jobManager;

View File

@@ -1,7 +1,10 @@
package org.thoughtcrime.securesms.jobmanager.impl;
import android.os.Process;
import androidx.annotation.NonNull;
import org.signal.core.util.ThreadUtil;
import org.thoughtcrime.securesms.jobmanager.ExecutorFactory;
import java.util.concurrent.ExecutorService;
@@ -10,6 +13,11 @@ import java.util.concurrent.Executors;
public class DefaultExecutorFactory implements ExecutorFactory {
@Override
public @NonNull ExecutorService newSingleThreadExecutor(@NonNull String name) {
return Executors.newSingleThreadExecutor(r -> new Thread(r, name));
return Executors.newSingleThreadExecutor(r -> new Thread(r, name) {
@Override public void run() {
Process.setThreadPriority(ThreadUtil.PRIORITY_BACKGROUND_THREAD);
super.run();
}
});
}
}