summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2013-04-19 16:23:42 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-04-19 16:23:43 +0000
commitdbe60357db3be0fd6268ce777647733c3383aa72 (patch)
tree943703565f95f9f40ef147b4651a4f7609886177
parent2c157e0f127f36b4c709508f899c2a9f32ba3bd4 (diff)
parent949a926cadbc961fbb649c91d76d7aee8ea4d7bd (diff)
downloadframeworks_av-dbe60357db3be0fd6268ce777647733c3383aa72.zip
frameworks_av-dbe60357db3be0fd6268ce777647733c3383aa72.tar.gz
frameworks_av-dbe60357db3be0fd6268ce777647733c3383aa72.tar.bz2
Merge "Use correct pid when running under test harness" into jb-mr2-dev
-rw-r--r--services/audioflinger/AudioFlinger.cpp1
-rw-r--r--services/audioflinger/ServiceUtilities.cpp5
-rw-r--r--services/audioflinger/ServiceUtilities.h2
3 files changed, 5 insertions, 3 deletions
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index b3de526..87eb6aa 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -143,6 +143,7 @@ AudioFlinger::AudioFlinger()
mMode(AUDIO_MODE_INVALID),
mBtNrecIsOff(false)
{
+ getpid_cached = getpid();
char value[PROPERTY_VALUE_MAX];
bool doLog = (property_get("ro.test_harness", value, "0") > 0) && (atoi(value) == 1);
if (doLog) {
diff --git a/services/audioflinger/ServiceUtilities.cpp b/services/audioflinger/ServiceUtilities.cpp
index 6a58852..d15bd04 100644
--- a/services/audioflinger/ServiceUtilities.cpp
+++ b/services/audioflinger/ServiceUtilities.cpp
@@ -21,8 +21,9 @@
namespace android {
-// This optimization assumes mediaserver process doesn't fork, which it doesn't
-const pid_t getpid_cached = getpid();
+// Not valid until initialized by AudioFlinger constructor. It would have to be
+// re-initialized if the process containing AudioFlinger service forks (which it doesn't).
+pid_t getpid_cached;
bool recordingAllowed() {
if (getpid_cached == IPCThreadState::self()->getCallingPid()) return true;
diff --git a/services/audioflinger/ServiceUtilities.h b/services/audioflinger/ServiceUtilities.h
index f77ec5b..80cecba 100644
--- a/services/audioflinger/ServiceUtilities.h
+++ b/services/audioflinger/ServiceUtilities.h
@@ -18,7 +18,7 @@
namespace android {
-extern const pid_t getpid_cached;
+extern pid_t getpid_cached;
bool recordingAllowed();
bool settingsAllowed();