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

Commit 3e9f3b67 authored by Mathias Agopian's avatar Mathias Agopian Committed by The Android Automerger
Browse files

ugly, temporary, workaroung for a problem where a binder thread spins forever

Bug: 7289992
Change-Id: I0c3d482a1af57e5f444be2ba7f2751ac3e954af2
parent 0f326b9a
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -482,6 +482,18 @@ void IPCThreadState::joinThreadPool(bool isMain)
        if(result == TIMED_OUT && !isMain) {
            break;
        }

        // HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK
        // FIXME: we sometimes get unexplained EINVAL which causes this
        // thread to spin forever. TEMPORARILY allow it to exit.
        // We should probably assert on eng builds
        if(result == -EINVAL && !isMain) {
            ALOGE("**** THREAD %p (PID %d) ERROR (%d) LEAVING THE THREAD POOL\n",
                (void*)pthread_self(), getpid(), result);
            break;
        }
        // HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK HACK

    } while (result != -ECONNREFUSED && result != -EBADF);

    LOG_THREADPOOL("**** THREAD %p (PID %d) IS LEAVING THE THREAD POOL err=%p\n",