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

Commit c21bc9af authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Only spawn one binder thread for cmd.

To work around race conditions in libbinder when
spawning new threads while being shut down.

Bug: 36066697
Test: cmd still works
Change-Id: I71c8d1aac29a1bf65d54023a4ed39d943ad54c98
parent 4c8cc1c8
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -123,6 +123,13 @@ int main(int argc, char* const argv[])
{
    signal(SIGPIPE, SIG_IGN);
    sp<ProcessState> proc = ProcessState::self();
    // setThreadPoolMaxThreadCount(0) actually tells the kernel it's
    // not allowed to spawn any additional threads, but we still spawn
    // a binder thread from userspace when we call startThreadPool().
    // This is safe because we only have 2 callbacks, neither of which
    // block.
    // See b/36066697 for rationale
    proc->setThreadPoolMaxThreadCount(0);
    proc->startThreadPool();

    sp<IServiceManager> sm = defaultServiceManager();