Loading core/java/android/database/sqlite/SQLiteDatabase.java +68 −55 Original line number Original line Diff line number Diff line Loading @@ -189,6 +189,8 @@ public class SQLiteDatabase extends SQLiteClosable { private static final int LOCK_ACQUIRED_WARNING_THREAD_TIME_IN_MS = 100; private static final int LOCK_ACQUIRED_WARNING_THREAD_TIME_IN_MS = 100; private static final int LOCK_ACQUIRED_WARNING_TIME_IN_MS_ALWAYS_PRINT = 2000; private static final int LOCK_ACQUIRED_WARNING_TIME_IN_MS_ALWAYS_PRINT = 2000; private static final int SLEEP_AFTER_YIELD_QUANTUM = 500; private long mLastLockMessageTime = 0L; private long mLastLockMessageTime = 0L; /** Used by native code, do not rename */ /** Used by native code, do not rename */ Loading Loading @@ -567,11 +569,22 @@ public class SQLiteDatabase extends SQLiteClosable { } } } } if (sleepAfterYieldDelay > 0) { if (sleepAfterYieldDelay > 0) { // Sleep for up to sleepAfterYieldDelay milliseconds, waking up periodically to // check if anyone is using the database. If the database is not contended, // retake the lock and return. long remainingDelay = sleepAfterYieldDelay; while (remainingDelay > 0) { try { try { Thread.sleep(sleepAfterYieldDelay); Thread.sleep(remainingDelay < SLEEP_AFTER_YIELD_QUANTUM ? remainingDelay : SLEEP_AFTER_YIELD_QUANTUM); } catch (InterruptedException e) { } catch (InterruptedException e) { Thread.interrupted(); Thread.interrupted(); } } remainingDelay -= SLEEP_AFTER_YIELD_QUANTUM; if (mLock.getQueueLength() == 0) { break; } } } } beginTransaction(); beginTransaction(); return true; return true; Loading Loading
core/java/android/database/sqlite/SQLiteDatabase.java +68 −55 Original line number Original line Diff line number Diff line Loading @@ -189,6 +189,8 @@ public class SQLiteDatabase extends SQLiteClosable { private static final int LOCK_ACQUIRED_WARNING_THREAD_TIME_IN_MS = 100; private static final int LOCK_ACQUIRED_WARNING_THREAD_TIME_IN_MS = 100; private static final int LOCK_ACQUIRED_WARNING_TIME_IN_MS_ALWAYS_PRINT = 2000; private static final int LOCK_ACQUIRED_WARNING_TIME_IN_MS_ALWAYS_PRINT = 2000; private static final int SLEEP_AFTER_YIELD_QUANTUM = 500; private long mLastLockMessageTime = 0L; private long mLastLockMessageTime = 0L; /** Used by native code, do not rename */ /** Used by native code, do not rename */ Loading Loading @@ -567,11 +569,22 @@ public class SQLiteDatabase extends SQLiteClosable { } } } } if (sleepAfterYieldDelay > 0) { if (sleepAfterYieldDelay > 0) { // Sleep for up to sleepAfterYieldDelay milliseconds, waking up periodically to // check if anyone is using the database. If the database is not contended, // retake the lock and return. long remainingDelay = sleepAfterYieldDelay; while (remainingDelay > 0) { try { try { Thread.sleep(sleepAfterYieldDelay); Thread.sleep(remainingDelay < SLEEP_AFTER_YIELD_QUANTUM ? remainingDelay : SLEEP_AFTER_YIELD_QUANTUM); } catch (InterruptedException e) { } catch (InterruptedException e) { Thread.interrupted(); Thread.interrupted(); } } remainingDelay -= SLEEP_AFTER_YIELD_QUANTUM; if (mLock.getQueueLength() == 0) { break; } } } } beginTransaction(); beginTransaction(); return true; return true; Loading