summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSudheer Shanka <sudheersai@google.com>2020-02-20 17:29:07 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-02-20 17:29:07 +0000
commit11d8a6ef8702349b93a27cd689376e3a6f64f839 (patch)
treef035ca6c75f956df21ed93aafb004e23e17be8e7
parente864e970a0e30742d4e54a318e6d48eb408063fc (diff)
parent4acba54d9270e43729aeba08ce525e4ee023a197 (diff)
Merge "Update BlobStoreMS to use LongSparseArray.removeIf(Predicate)."
-rw-r--r--apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java12
1 files changed, 3 insertions, 9 deletions
diff --git a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
index aae33d7b0a89..18b1108aab3a 100644
--- a/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
+++ b/apex/blobstore/service/java/com/android/server/blob/BlobStoreManagerService.java
@@ -858,12 +858,9 @@ public class BlobStoreManagerService extends SystemService {
writeBlobsInfoAsync();
// Cleanup any stale sessions.
- final ArrayList<Integer> indicesToRemove = new ArrayList<>();
for (int i = 0, userCount = mSessions.size(); i < userCount; ++i) {
final LongSparseArray<BlobStoreSession> userSessions = mSessions.valueAt(i);
- indicesToRemove.clear();
- for (int j = 0, sessionsCount = userSessions.size(); j < sessionsCount; ++j) {
- final BlobStoreSession blobStoreSession = userSessions.valueAt(j);
+ userSessions.removeIf((sessionId, blobStoreSession) -> {
boolean shouldRemove = false;
// Cleanup sessions which haven't been modified in a while.
@@ -880,13 +877,10 @@ public class BlobStoreManagerService extends SystemService {
if (shouldRemove) {
blobStoreSession.getSessionFile().delete();
mActiveBlobIds.remove(blobStoreSession.getSessionId());
- indicesToRemove.add(j);
deletedBlobIds.add(blobStoreSession.getSessionId());
}
- }
- for (int j = 0; j < indicesToRemove.size(); ++j) {
- userSessions.removeAt(indicesToRemove.get(j));
- }
+ return shouldRemove;
+ });
}
if (LOGV) {
Slog.v(TAG, "Completed idle maintenance; deleted "