OSDN Git Service

SF: Request SF wakeup for pending transactions
authorDan Stoza <stoza@google.com>
Wed, 2 Nov 2016 23:27:47 +0000 (16:27 -0700)
committerDan Stoza <stoza@google.com>
Thu, 3 Nov 2016 17:27:50 +0000 (17:27 +0000)
commitd9d1817e9a2772239bbe2424fa747ec84b6030ff
tree82cb2131abcaeb162ef9c57c5894828419bcf87a
parentc981bfb460013d4181b43d19ec40cc4406e17e3e
SF: Request SF wakeup for pending transactions

When a Layer receives a pending transaction, it sets a flag on itself
that it needs a transaction to be handled, but it doesn't notify
SurfaceFlinger to iterate through the layers and check for that flag.
In some cases, this led to transactions never being processed, which
can hang an application trying to push buffers that are part of a
synchronized transaction. This change pokes SurfaceFlinger when setting
the Layer flag so that it doesn't slip through the cracks.

Bug: 32541494
Bug: 32629397
Test: Two successful monkey runs
Change-Id: I4b906eee8004fad1938aa94a1aa0a0c7ea289102
services/surfaceflinger/Layer.cpp