mirror of
https://github.com/M66B/FairEmail.git
synced 2025-03-15 08:29:24 +00:00
Check process ID for database access
This commit is contained in:
parent
9b91451ecb
commit
eca62f072f
1 changed files with 6 additions and 4 deletions
|
@ -34,6 +34,7 @@ import java.util.ArrayList;
|
|||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
@ -111,8 +112,8 @@ public abstract class DB extends RoomDatabase {
|
|||
|
||||
public abstract DaoLog log();
|
||||
|
||||
private static Context sContext;
|
||||
private static int sPid;
|
||||
private static Context sContext;
|
||||
private static DB sInstance;
|
||||
|
||||
private static final String DB_NAME = "fairemail";
|
||||
|
@ -305,17 +306,18 @@ public abstract class DB extends RoomDatabase {
|
|||
}
|
||||
|
||||
public static synchronized DB getInstance(Context context) {
|
||||
int apid = android.os.Process.myPid();
|
||||
Context acontext = context.getApplicationContext();
|
||||
if (sInstance != null &&
|
||||
sContext != null && !sContext.equals(acontext))
|
||||
(sPid != apid || !Objects.equals(sContext, acontext)))
|
||||
try {
|
||||
Log.e("Orphan database instance pid=" + android.os.Process.myPid() + "/" + sPid);
|
||||
Log.e("Orphan database instance pid=" + apid + "/" + sPid);
|
||||
sInstance = null;
|
||||
} catch (Throwable ex) {
|
||||
Log.e(ex);
|
||||
}
|
||||
sPid = apid;
|
||||
sContext = acontext;
|
||||
sPid = android.os.Process.myPid();
|
||||
|
||||
if (sInstance == null) {
|
||||
Log.i("Creating database instance pid=" + sPid);
|
||||
|
|
Loading…
Add table
Reference in a new issue