Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2376bd68 authored by Aravind Akella's avatar Aravind Akella Committed by Android (Google) Code Review
Browse files

Merge "Bug fix in SensorManager." into mnc-dev

parents bf7cd01a 869eb208
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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

+8 −3
Original line number Diff line number Diff line
@@ -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) {