Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 66e86f97 authored by Winson Chung's avatar Winson Chung
Browse files

Fixing high cpu usage due to case not falling through to wait logic. (Bug 18390735)

Change-Id: I78068567225f85efaa4858dc947de88d39df3f10
parent ce66d35f
Loading
Loading
Loading
Loading
+50 −50
Original line number Diff line number Diff line
@@ -170,10 +170,9 @@ class TaskResourceLoader implements Runnable {
            } else {
                RecentsConfiguration config = RecentsConfiguration.getInstance();
                SystemServicesProxy ssp = mSystemServicesProxy;
                // If we've stopped the loader, then fall thorugh to the above logic to wait on
                // If we've stopped the loader, then fall through to the above logic to wait on
                // the load thread
                if (ssp == null) continue;

                if (ssp != null) {
                    // Load the next item from the queue
                    final Task t = mLoadQueue.nextTask();
                    if (t != null) {
@@ -186,8 +185,8 @@ class TaskResourceLoader implements Runnable {
                                    mContext.getResources());

                            if (cachedIcon == null) {
                            ActivityInfo info = ssp.getActivityInfo(t.key.baseIntent.getComponent(),
                                    t.key.userId);
                                ActivityInfo info = ssp.getActivityInfo(
                                        t.key.baseIntent.getComponent(), t.key.userId);
                                if (info != null) {
                                    if (DEBUG) Log.d(TAG, "Loading icon: " + t.key);
                                    cachedIcon = ssp.getActivityIcon(info, t.key.userId);
@@ -198,8 +197,8 @@ class TaskResourceLoader implements Runnable {
                                cachedIcon = mDefaultApplicationIcon;
                            }

                        // At this point, even if we can't load the icon, we will set the default
                        // icon.
                            // At this point, even if we can't load the icon, we will set the
                            // default icon.
                            mApplicationIconCache.put(t.key, cachedIcon);
                        }
                        // Load the thumbnail if it is stale or we haven't cached one yet
@@ -212,8 +211,8 @@ class TaskResourceLoader implements Runnable {
                                cachedThumbnail = mDefaultThumbnail;
                            }
                            // When svelte, we trim the memory to just the visible thumbnails when
                        // leaving, so don't thrash the cache as the user scrolls (just load them
                        // from scratch each time)
                            // leaving, so don't thrash the cache as the user scrolls (just load
                            // them from scratch each time)
                            if (config.svelteLevel < RecentsConfiguration.SVELTE_LIMIT_CACHE) {
                                mThumbnailCache.put(t.key, cachedThumbnail);
                            }
@@ -231,6 +230,7 @@ class TaskResourceLoader implements Runnable {
                            });
                        }
                    }
                }

                // If there are no other items in the list, then just wait until something is added
                if (!mCancelled && mLoadQueue.isEmpty()) {