Loading services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +11 −0 Original line number Diff line number Diff line Loading @@ -568,6 +568,10 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { } void onUnlockUser(int userId) { // In order to ensure that no package begins running while a backup or restore is taking // place, onUnlockUser must remain blocked until all pending backups and restores have // completed. CountDownLatch latch = new CountDownLatch(1); getHandler().post(() -> { final List<Rollback> rollbacks; synchronized (mLock) { Loading @@ -580,7 +584,14 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { for (Rollback rollback : changed) { saveRollback(rollback); } latch.countDown(); }); try { latch.await(); } catch (InterruptedException ie) { throw new IllegalStateException("RollbackManagerHandlerThread interrupted"); } } private void updateRollbackLifetimeDurationInMillis() { Loading Loading
services/core/java/com/android/server/rollback/RollbackManagerServiceImpl.java +11 −0 Original line number Diff line number Diff line Loading @@ -568,6 +568,10 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { } void onUnlockUser(int userId) { // In order to ensure that no package begins running while a backup or restore is taking // place, onUnlockUser must remain blocked until all pending backups and restores have // completed. CountDownLatch latch = new CountDownLatch(1); getHandler().post(() -> { final List<Rollback> rollbacks; synchronized (mLock) { Loading @@ -580,7 +584,14 @@ class RollbackManagerServiceImpl extends IRollbackManager.Stub { for (Rollback rollback : changed) { saveRollback(rollback); } latch.countDown(); }); try { latch.await(); } catch (InterruptedException ie) { throw new IllegalStateException("RollbackManagerHandlerThread interrupted"); } } private void updateRollbackLifetimeDurationInMillis() { Loading