diff --git a/legacy/evas/src/lib/cache/evas_preload.c b/legacy/evas/src/lib/cache/evas_preload.c index 91f982a92b..759d133d3b 100644 --- a/legacy/evas/src/lib/cache/evas_preload.c +++ b/legacy/evas/src/lib/cache/evas_preload.c @@ -213,6 +213,14 @@ evas_preload_thread_run(void (*func_heavy) (void *data), if (pthread_create(&pth->thread, NULL, (void *) _evas_preload_thread_worker, pth) == 0) { + /* lower priority of async loader threads so they use up "bg cpu" + * as it was really intended to work */ + struct sched_param param; + + memset(¶m, 0, sizeof(param)); + param.sched_priority = sched_get_priority_min(SCHED_RR); + pthread_setschedparam(pth->thread, SCHED_RR, ¶m); + LKL(_mutex); _evas_preload_thread_count++; LKU(_mutex);