diff options
author | Aravind Akella <aakella@google.com> | 2015-07-29 01:01:55 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-07-29 01:01:55 +0000 |
commit | b04e02b9f70b7a26d1a8dc5927e4fca51168a759 (patch) | |
tree | b4ff02c11c80cc853967f68567016895ea820c9c | |
parent | 0a4a069a83e187b34b72169b2de91c78ac287858 (diff) | |
parent | 3a77d009273731eeeb6782f0eee6458c46f30208 (diff) | |
download | frameworks_native-b04e02b9f70b7a26d1a8dc5927e4fca51168a759.zip frameworks_native-b04e02b9f70b7a26d1a8dc5927e4fca51168a759.tar.gz frameworks_native-b04e02b9f70b7a26d1a8dc5927e4fca51168a759.tar.bz2 |
am 3a77d009: am 2376bd68: Merge "Bug fix in SensorManager." into mnc-dev
* commit '3a77d009273731eeeb6782f0eee6458c46f30208':
Bug fix in SensorManager.
-rw-r--r-- | include/gui/SensorManager.h | 4 | ||||
-rw-r--r-- | libs/gui/SensorManager.cpp | 11 |
2 files changed, 11 insertions, 4 deletions
diff --git a/include/gui/SensorManager.h b/include/gui/SensorManager.h index 3796067..9794d4e 100644 --- a/include/gui/SensorManager.h +++ b/include/gui/SensorManager.h @@ -101,7 +101,6 @@ public: return *sensorManager; } - SensorManager(const String16& opPackageName); ~SensorManager(); ssize_t getSensorList(Sensor const* const** list) const; @@ -113,6 +112,7 @@ private: // DeathRecipient interface void sensorManagerDied(); + SensorManager(const String16& opPackageName); status_t assertStateLocked() const; private: @@ -127,6 +127,8 @@ private: const String16 mOpPackageName; }; +android::Mutex android::SensorManager::sLock; +std::map<String16, SensorManager*> android::SensorManager::sPackageInstances; // ---------------------------------------------------------------------------- }; // namespace android diff --git a/libs/gui/SensorManager.cpp b/libs/gui/SensorManager.cpp index dd37781..ead535e 100644 --- a/libs/gui/SensorManager.cpp +++ b/libs/gui/SensorManager.cpp @@ -59,12 +59,13 @@ void SensorManager::sensorManagerDied() status_t SensorManager::assertStateLocked() const { if (mSensorServer == NULL) { - // try for one second const String16 name("sensorservice"); - for (int i=0 ; i<4 ; i++) { + // try 10 times before giving up ... + for (int i = 0; i < 10; ++i) { status_t err = getService(name, &mSensorServer); if (err == NAME_NOT_FOUND) { - usleep(250000); + // Sleep for 1 second before retrying. + sleep(1); continue; } if (err != NO_ERROR) { @@ -73,6 +74,10 @@ status_t SensorManager::assertStateLocked() const { break; } + if (mSensorServer == NULL) { + ALOGE("FATAL getsensorservice returned` NULL"); + } + class DeathObserver : public IBinder::DeathRecipient { SensorManager& mSensorManger; virtual void binderDied(const wp<IBinder>& who) { |