summaryrefslogtreecommitdiff
path: root/libs/gui/BufferQueueThreadState.cpp
diff options
context:
space:
mode:
author Robert Carr <racarr@google.com> 2019-02-13 13:50:55 -0800
committer Robert Carr <racarr@google.com> 2019-02-14 13:03:05 -0800
commit14167e00b52f59901e5cff816cf60e7fe2401c88 (patch)
tree32e2bc63a172c59031961f6f8c9255eceea35295 /libs/gui/BufferQueueThreadState.cpp
parentf6d3044c4db6d928a19007bd8ab056c6ee52b7b0 (diff)
SurfaceFlinger: Avoid calling to SystemServer with lock held.
PermissionCache::checkPermission may make a blocking call in to system-server. We don't have any lock ordering issues as we end up acquiring the PackageManager lock, and PM does not call back to SF. However, we can have Binder thread exhaustion issues, in that many threads can be calling in to the ActivityManager, which could be blocked on the WM, which could be blocked on SF. If the number of threads calling in to AM is > than our binder thread pool size we deadlock. I'm not sure we are totally resistant against thread exhaustion issues but this one is easy enough to fix and there are reports of it. Bug: 124281288 Test: Existing tests pass Change-Id: I4ffab2df921478df020bb1089dcd13dd79d99ce6
Diffstat (limited to 'libs/gui/BufferQueueThreadState.cpp')
0 files changed, 0 insertions, 0 deletions