diff options
author | Aravind Akella <aakella@google.com> | 2015-07-24 11:08:41 -0700 |
---|---|---|
committer | Aravind Akella <aakella@google.com> | 2015-07-26 11:48:06 -0700 |
commit | 869eb2089ec8a6286b944bfcff57e4cbe0c7e207 (patch) | |
tree | 0c25310b3f2825c98813e867a11ceae582e68409 /libs | |
parent | 5f920c1a2cf12c0638c05fbddee8ff6c1193731c (diff) | |
download | frameworks_native-869eb2089ec8a6286b944bfcff57e4cbe0c7e207.zip frameworks_native-869eb2089ec8a6286b944bfcff57e4cbe0c7e207.tar.gz frameworks_native-869eb2089ec8a6286b944bfcff57e4cbe0c7e207.tar.bz2 |
Bug fix in SensorManager.
If SensorService hasn't started when SensorManager instance is requested, keep retrying for a
longer duration.
Bug: 22529981
Change-Id: I4ba6b760608e34d79273aeb39568f0fa72fbaf9d
Diffstat (limited to 'libs')
-rw-r--r-- | libs/gui/SensorManager.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
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) { |