diff options
author | 2010-05-18 17:06:55 -0700 | |
---|---|---|
committer | 2010-05-20 18:00:42 -0700 | |
commit | 898c4c91be8e11b6d5388c623ae80f12ac25fd27 (patch) | |
tree | 8f59a103707c25a05bcf4fa074e944e766c15503 /libs/surfaceflinger/LayerBlur.cpp | |
parent | 66c46a6bd15422fe898d533d1350d6df748dd95b (diff) |
fix the threading issue for setBuffercount()
this change introduces R/W locks in the right places.
on the server-side, it guarantees that setBufferCount()
is synchronized with "retire" and "resize".
on the client-side, it guarantees that setBufferCount()
is synchronized with "dequeue", "lockbuffer" and "queue"
Diffstat (limited to 'libs/surfaceflinger/LayerBlur.cpp')
-rw-r--r-- | libs/surfaceflinger/LayerBlur.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/surfaceflinger/LayerBlur.cpp b/libs/surfaceflinger/LayerBlur.cpp index 2d778763ee55..09c90e8001a6 100644 --- a/libs/surfaceflinger/LayerBlur.cpp +++ b/libs/surfaceflinger/LayerBlur.cpp @@ -95,7 +95,9 @@ void LayerBlur::unlockPageFlip(const Transform& planeTransform, Region& outDirty mCacheDirty = false; } else { if (!mAutoRefreshPending) { - mFlinger->signalDelayedEvent(ms2ns(500)); + mFlinger->postMessageAsync( + new MessageBase(MessageQueue::INVALIDATE), + ms2ns(500)); mAutoRefreshPending = true; } } |