diff options
author | Mathias Agopian <mathias@google.com> | 2012-08-17 15:06:02 -0700 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2012-08-17 18:48:56 -0700 |
commit | 10125f00a50d3edd05deef9fcd2d368cf2766683 (patch) | |
tree | 9c7a89d1fc421b2516b5662b9c57ea2af349ea5c /services/surfaceflinger/EventThread.h | |
parent | 2c7eb92b6394427bfe81962668d46194959bc722 (diff) | |
download | frameworks_native-10125f00a50d3edd05deef9fcd2d368cf2766683.zip frameworks_native-10125f00a50d3edd05deef9fcd2d368cf2766683.tar.gz frameworks_native-10125f00a50d3edd05deef9fcd2d368cf2766683.tar.bz2 |
Fix deadlock in SF.
problem was that we were acquiring a strong reference
on Connection object with a lock held, when those
got out of scope (lock still held) their dtor
could be called if all other refs had dropped,
the dtor would acquire the lock again to
remove the Connection from the main list. boom.
we rearange the code so this doesn't happen.
Bug: 6942208
Change-Id: I0a0ebabce2842d29d60d645b64aac2f26640e59b
Diffstat (limited to 'services/surfaceflinger/EventThread.h')
-rw-r--r-- | services/surfaceflinger/EventThread.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/services/surfaceflinger/EventThread.h b/services/surfaceflinger/EventThread.h index a71d985..d23b9fa 100644 --- a/services/surfaceflinger/EventThread.h +++ b/services/surfaceflinger/EventThread.h @@ -100,12 +100,9 @@ private: // protected by mLock SortedVector< wp<Connection> > mDisplayEventConnections; - nsecs_t mLastVSyncTimestamp; nsecs_t mVSyncTimestamp; bool mUseSoftwareVSync; - - // main thread only - size_t mDeliveredEvents; + size_t mVSyncCount; // for debugging bool mDebugVsyncEnabled; |