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

Commit f31a3eb3 authored by Andreas Gampe's avatar Andreas Gampe
Browse files

Binder: Add log output in IPCThreadState::self()

In the failure case, and on shutdown, add log output. It's highly
likely the client will crash when a null value is returned. Displaying
a possible root cause helps diagnosing issues.

Bug: 26865304
Change-Id: Ie5255ac50d6dcdf9f918dcef785788ea795a4791
parent 7f9c122a
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -287,12 +287,18 @@ restart:
        return new IPCThreadState;
    }
    
    if (gShutdown) return NULL;
    if (gShutdown) {
        ALOGW("Calling IPCThreadState::self() during shutdown is dangerous, expect a crash.\n");
        return NULL;
    }
    
    pthread_mutex_lock(&gTLSMutex);
    if (!gHaveTLS) {
        if (pthread_key_create(&gTLS, threadDestructor) != 0) {
        int key_create_value = pthread_key_create(&gTLS, threadDestructor);
        if (key_create_value != 0) {
            pthread_mutex_unlock(&gTLSMutex);
            ALOGW("IPCThreadState::self() unable to create TLS key, expect a crash: %s\n",
                    strerror(key_create_value));
            return NULL;
        }
        gHaveTLS = true;