* commit '3a77d009273731eeeb6782f0eee6458c46f30208': Bug fix in SensorManager.
This commit is contained in:
commit
b04e02b9f7
@ -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
|
||||
|
||||
|
@ -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) {
|
||||
|
Loading…
Reference in New Issue
Block a user