summaryrefslogtreecommitdiffstats
path: root/services/surfaceflinger/EventThread.h
diff options
context:
space:
mode:
authorMathias Agopian <mathias@google.com>2012-08-17 15:06:02 -0700
committerMathias Agopian <mathias@google.com>2012-08-17 18:48:56 -0700
commit10125f00a50d3edd05deef9fcd2d368cf2766683 (patch)
tree9c7a89d1fc421b2516b5662b9c57ea2af349ea5c /services/surfaceflinger/EventThread.h
parent2c7eb92b6394427bfe81962668d46194959bc722 (diff)
downloadframeworks_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.h5
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;