audiopolicy: Use C++11 atomics, factor out handle generation
Update the code to use C++11 atomics. Make sure that
unsigned ints are used as id counters (signed ints have undefined
overflow behavior). Factor out common code from AudioPatch
and AudioPort.
Test: compiles
Change-Id: Ic359e97795a6282a2937d88bead8a1de27c8db7a
diff --git a/services/audiopolicy/managerdefault/AudioPolicyManager.h b/services/audiopolicy/managerdefault/AudioPolicyManager.h
index b61bc2d..ae2e7c3 100644
--- a/services/audiopolicy/managerdefault/AudioPolicyManager.h
+++ b/services/audiopolicy/managerdefault/AudioPolicyManager.h
@@ -16,6 +16,8 @@
#pragma once
+#include <atomic>
+
#include <stdint.h>
#include <sys/types.h>
#include <cutils/config_utils.h>
@@ -534,7 +536,7 @@
HwModuleCollection mHwModulesAll; // normally not needed, used during construction and for
// dumps
- volatile int32_t mAudioPortGeneration;
+ std::atomic<uint32_t> mAudioPortGeneration;
AudioPatchCollection mAudioPatches;