eina - dont use SCHED_BATCH or SCHED_IDLE unless they are defined

This commit is contained in:
Carsten Haitzler 2020-05-25 10:27:19 +01:00
parent 0b96e63f82
commit 3b39cb9472
1 changed files with 17 additions and 7 deletions

View File

@ -147,20 +147,30 @@ _eina_internal_call(void *context)
{ {
struct sched_param params; struct sched_param params;
int min; int min;
#ifdef SCHED_IDLE
min = sched_get_priority_min(SCHED_IDLE); int pol = SCHED_IDLE;
#else
int pol;
pthread_getschedparam(self, &pol, &params);
#endif
min = sched_get_priority_min(pol);
params.sched_priority = min; params.sched_priority = min;
pthread_setschedparam(self, SCHED_IDLE, &params); pthread_setschedparam(self, pol, &params);
} }
else if (c->prio == EINA_THREAD_BACKGROUND) else if (c->prio == EINA_THREAD_BACKGROUND)
{ {
struct sched_param params; struct sched_param params;
int min, max; int min, max;
#ifdef SCHED_BATCH
min = sched_get_priority_min(SCHED_BATCH); int pol = SCHED_BATCH;
max = sched_get_priority_max(SCHED_BATCH); #else
int pol;
pthread_getschedparam(self, &pol, &params);
#endif
min = sched_get_priority_min(pol);
max = sched_get_priority_max(pol);
params.sched_priority = (max - min) / 2; params.sched_priority = (max - min) / 2;
pthread_setschedparam(self, SCHED_BATCH, &params); pthread_setschedparam(self, pol, &params);
} }
// do nothing for normal // do nothing for normal
// else if (c->prio == EINA_THREAD_NORMAL) // else if (c->prio == EINA_THREAD_NORMAL)