diff --git a/cmds/surfaceflinger/main_surfaceflinger.cpp b/cmds/surfaceflinger/main_surfaceflinger.cpp index 6dbcf5c2f..28e58e4b9 100644 --- a/cmds/surfaceflinger/main_surfaceflinger.cpp +++ b/cmds/surfaceflinger/main_surfaceflinger.cpp @@ -21,5 +21,8 @@ using namespace android; int main(int argc, char** argv) { SurfaceFlinger::publishAndJoinThreadPool(true); + // When SF is launched in its own process, limit the number of + // binder threads to 4. + ProcessState::self()->setThreadPoolMaxThreadCount(4); return 0; } diff --git a/include/binder/BinderService.h b/include/binder/BinderService.h index ca594d363..646026841 100644 --- a/include/binder/BinderService.h +++ b/include/binder/BinderService.h @@ -40,7 +40,6 @@ public: } static void publishAndJoinThreadPool(bool allowIsolated = false) { - sp proc(ProcessState::self()); sp sm(defaultServiceManager()); sm->addService(String16(SERVICE::getServiceName()), new SERVICE(), allowIsolated); ProcessState::self()->startThreadPool();