diff options
| author | 2021-12-09 08:39:57 -0800 | |
|---|---|---|
| committer | 2021-12-09 09:57:14 -0800 | |
| commit | ab6dc5c5ef58d322ddf07e9f6e64205d2ba3700d (patch) | |
| tree | 5a132781bd4fc6db1d2e7faa8e591d97980ef7cb /libs/gui/SurfaceComposerClient.cpp | |
| parent | 302d8d4be8f8e8808ad988950fda0a41bb85d899 (diff) | |
libgui: Generate transaction ids for all transactions
Test: presubmit
Bug: 200284593
Change-Id: Ic604415cb97228bed6d5b137424b50f461f01038
Diffstat (limited to 'libs/gui/SurfaceComposerClient.cpp')
| -rw-r--r-- | libs/gui/SurfaceComposerClient.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/libs/gui/SurfaceComposerClient.cpp b/libs/gui/SurfaceComposerClient.cpp index e1fe26aa7f..aafa5e470d 100644 --- a/libs/gui/SurfaceComposerClient.cpp +++ b/libs/gui/SurfaceComposerClient.cpp @@ -62,6 +62,14 @@ using ui::ColorMode; ANDROID_SINGLETON_STATIC_INSTANCE(ComposerService); +namespace { +// Initialize transaction id counter used to generate transaction ids +std::atomic<uint32_t> idCounter = 0; +int64_t generateId() { + return (((int64_t)getpid()) << 32) | ++idCounter; +} +} // namespace + ComposerService::ComposerService() : Singleton<ComposerService>() { Mutex::Autolock _l(mLock); @@ -535,10 +543,6 @@ void removeDeadBufferCallback(void* /*context*/, uint64_t graphicBufferId) { // --------------------------------------------------------------------------- -// Initialize transaction id counter used to generate transaction ids -// Transactions will start counting at 1, 0 is used for invalid transactions -std::atomic<uint32_t> SurfaceComposerClient::Transaction::idCounter = 1; - SurfaceComposerClient::Transaction::Transaction() { mId = generateId(); } @@ -570,9 +574,6 @@ SurfaceComposerClient::Transaction::createFromParcel(const Parcel* parcel) { return nullptr; } -int64_t SurfaceComposerClient::Transaction::generateId() { - return (((int64_t)getpid()) << 32) | idCounter++; -} status_t SurfaceComposerClient::Transaction::readFromParcel(const Parcel* parcel) { const uint32_t forceSynchronous = parcel->readUint32(); @@ -825,7 +826,7 @@ void SurfaceComposerClient::doUncacheBufferTransaction(uint64_t cacheId) { sp<IBinder> applyToken = IInterface::asBinder(TransactionCompletedListener::getIInstance()); sf->setTransactionState(FrameTimelineInfo{}, {}, {}, 0, applyToken, {}, systemTime(), true, - uncacheBuffer, false, {}, 0 /* Undefined transactionId */); + uncacheBuffer, false, {}, generateId()); } void SurfaceComposerClient::Transaction::cacheBuffers() { |