Мое приложение создает вспомогательный pthread, который мне нужно запустить с более высоким приоритетом, чем основной поток.
Я попытался установить приоритет созданного потока следующим образом:
struct sched_param param;
pthread_attr_t tattr;
pthread_attr_init(&tattr);
pthread_attr_getschedparam(&tattr, ¶m);
param.sched_priority = sched_get_priority_max(SCHED_RR);
pthread_attr_setschedparam(&tattr, ¶m);
pthread_create(&helper_thread, &tattr, helper_main, NULL);
Но вызов pthread_attr_setschedparam
возвращает EINVAL.
Я не уверен, что я делаю здесь не так. Правильный ли это общий подход?
Мне все равно, как это делается, мне просто нужно, чтобы новый поток имел более высокий приоритет, чем оригинальный.