Use dedicated I/O executor

pull/210/head
M66B 3 years ago
parent d23bd75e8d
commit 9c5d1cbde5

@ -405,7 +405,7 @@ public abstract class DB extends RoomDatabase {
.databaseBuilder(context, DB.class, DB_NAME) .databaseBuilder(context, DB.class, DB_NAME)
//.openHelperFactory(new RequerySQLiteOpenHelperFactory()) //.openHelperFactory(new RequerySQLiteOpenHelperFactory())
//.setQueryExecutor() //.setQueryExecutor()
.setTransactionExecutor(Helper.getParallelExecutor()) .setTransactionExecutor(Helper.getBackgroundExecutor(4, "db"))
.setJournalMode(wal ? JournalMode.WRITE_AHEAD_LOGGING : JournalMode.TRUNCATE) // using the latest sqlite .setJournalMode(wal ? JournalMode.WRITE_AHEAD_LOGGING : JournalMode.TRUNCATE) // using the latest sqlite
.addCallback(new Callback() { .addCallback(new Callback() {
@Override @Override
@ -2665,7 +2665,7 @@ public abstract class DB extends RoomDatabase {
public static void checkpoint(Context context) { public static void checkpoint(Context context) {
// https://www.sqlite.org/pragma.html#pragma_wal_checkpoint // https://www.sqlite.org/pragma.html#pragma_wal_checkpoint
DB db = getInstance(context); DB db = getInstance(context);
Helper.getParallelExecutor().execute(new Runnable() { db.getQueryExecutor().execute(new Runnable() {
@Override @Override
public void run() { public void run() {
try { try {
@ -2695,7 +2695,7 @@ public abstract class DB extends RoomDatabase {
public static void shrinkMemory(Context context) { public static void shrinkMemory(Context context) {
DB db = getInstance(context); DB db = getInstance(context);
Helper.getParallelExecutor().execute(new Runnable() { db.getQueryExecutor().execute(new Runnable() {
@Override @Override
public void run() { public void run() {
try { try {

@ -280,7 +280,7 @@ public class Helper {
} }
} }
private static ExecutorService getBackgroundExecutor(int threads, final String name) { static ExecutorService getBackgroundExecutor(int threads, final String name) {
ThreadFactory factory = new ThreadFactory() { ThreadFactory factory = new ThreadFactory() {
private final AtomicInteger threadId = new AtomicInteger(); private final AtomicInteger threadId = new AtomicInteger();

@ -200,7 +200,7 @@ public class ViewModelMessages extends ViewModel {
break; break;
} }
builder.setFetchExecutor(Helper.getParallelExecutor()); builder.setFetchExecutor(db.getQueryExecutor());
model = new Model(args, builder.build(), boundary); model = new Model(args, builder.build(), boundary);
models.put(viewType, model); models.put(viewType, model);

Loading…
Cancel
Save