thread/Util: implement system call wrapper for sched_setscheduler()

There is a POSIX definition for sched_setscheduler(), but Linux does
not implement that; instead of changing the process's scheduler, it
only affects one thread.  This has caused some confusion among
application developers and C library developers.

While glibc implements Linux semantics, Musl has made their
sched_setscheduler() function an always-failing no-op, causing the
error message "sched_setscheduler failed: Function not implemented".

 http://git.musl-libc.org/cgit/musl/commit/src/sched/sched_setscheduler.c?id=1e21e78bf7a5c24c217446d8760be7b7188711c2

Instead of relying on the C library which may be unreliable here, we
now roll our own system call wrapper.

Closes #218
This commit is contained in:
Max Kellermann
2018-02-09 18:30:24 +01:00
parent 6f00f97b66
commit 817656504d
2 changed files with 19 additions and 3 deletions

1
NEWS
View File

@@ -1,4 +1,5 @@
ver 0.20.17 (not yet released)
* fix real-time and idle scheduling with Musl
ver 0.20.16 (2018/02/03)
* output