SurfaceView: Clean up deferred-destroy-surface from UI thread
We utilize mTmpTransaction without locking from the main thread. The callback info inside the transaction stores an sp to the SurfaceControl. If we apply the Transaction from two threads independently we may implicitly call reset() on the same sp instance twice in an overlapping fashion. While the reference count is itself atomic, that wont stop us from decrementing it twice here, when we only had one reference. This leads to an early free and a crash later. Bug: 159333209 Test: Existing tests pass Change-Id: I898bef0b6b8c1cf34891410bbadf63fe2f840697
Loading
Please register or sign in to comment