将线程策略设置为 SCHED_RR 时发生未知错误

Unknown error when setting thread policy to SCHED_RR

我在尝试将我的线程的调度策略设置为 SCHED_RR 时收到未知错误代码(实际上是 48)。

这是我的代码示例:

#include <sched.h>
#include <pthread.h>
#include <stdio.h>

int main() {
    pthread_attr_t attr;

    pthread_attr_init(&attr);
    pthread_attr_setinheritsched(&attr, PTHREAD_EXPLICIT_SCHED);
    int ret = pthread_attr_setschedpolicy(&attr, SCHED_RR);
    printf("ret: %s\n", strerror(ret));

    return 0;
}

跟踪:

ret: Unknown error

为什么会这样?这不是我在其他问题中看到的 EPERM。

我正在 Windows 7 使用 cygwin。

如果您阅读了 cygwin 中 pthreads 的文档:

https://sourceware.org/pthreads-win32/announcement.html

可以看到只支持SCHED_OTHER:

pthread_attr_setschedpolicy (only supports SCHED_OTHER)