diff options
Diffstat (limited to 'services/surfaceflinger/main_surfaceflinger.cpp')
-rw-r--r-- | services/surfaceflinger/main_surfaceflinger.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/services/surfaceflinger/main_surfaceflinger.cpp b/services/surfaceflinger/main_surfaceflinger.cpp index a609b6f..b161480 100644 --- a/services/surfaceflinger/main_surfaceflinger.cpp +++ b/services/surfaceflinger/main_surfaceflinger.cpp @@ -14,6 +14,11 @@ * limitations under the License. */ +#if defined(HAVE_PTHREADS) +#include <sys/resource.h> +#endif + +#include <cutils/sched_policy.h> #include <binder/IServiceManager.h> #include <binder/IPCThreadState.h> #include <binder/ProcessState.h> @@ -27,16 +32,21 @@ int main(int argc, char** argv) { // binder threads to 4. ProcessState::self()->setThreadPoolMaxThreadCount(4); + // start the thread pool + sp<ProcessState> ps(ProcessState::self()); + ps->startThreadPool(); + // instantiate surfaceflinger sp<SurfaceFlinger> flinger = new SurfaceFlinger(); +#if defined(HAVE_PTHREADS) + setpriority(PRIO_PROCESS, 0, PRIORITY_URGENT_DISPLAY); +#endif + set_sched_policy(0, SP_FOREGROUND); + // initialize before clients can connect flinger->init(); - // start the thread pool - sp<ProcessState> ps(ProcessState::self()); - ps->startThreadPool(); - // publish surface flinger sp<IServiceManager> sm(defaultServiceManager()); sm->addService(String16(SurfaceFlinger::getServiceName()), flinger, false); |