diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-11-11 15:38:04 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-11-11 15:38:04 -0500 |
commit | 1e21e78bf7a5c24c217446d8760be7b7188711c2 (patch) | |
tree | 83920f2f5aad8bc090ddb55e57f74e062743e592 /src/thread/pthread_attr_setscope.c | |
parent | e9b885ee550e8a3eabc9d11c469baf1cfaf64f55 (diff) | |
download | musl-1e21e78bf7a5c24c217446d8760be7b7188711c2.tar.gz |
add support for thread scheduling (POSIX TPS option)
linux's sched_* syscalls actually implement the TPS (thread
scheduling) functionality, not the PS (process scheduling)
functionality which the sched_* functions are supposed to have.
omitting support for the PS option (and having the sched_* interfaces
fail with ENOSYS rather than omitting them, since some broken software
assumes they exist) seems to be the only conforming way to do this on
linux.
Diffstat (limited to 'src/thread/pthread_attr_setscope.c')
-rw-r--r-- | src/thread/pthread_attr_setscope.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/thread/pthread_attr_setscope.c b/src/thread/pthread_attr_setscope.c index d56ee391..46b520c0 100644 --- a/src/thread/pthread_attr_setscope.c +++ b/src/thread/pthread_attr_setscope.c @@ -2,6 +2,12 @@ int pthread_attr_setscope(pthread_attr_t *a, int scope) { - if (scope > 1U) return EINVAL; - return 0; + switch (scope) { + case PTHREAD_SCOPE_SYSTEM: + return 0; + case PTHREAD_SCOPE_PROCESS: + return ENOTSUP; + default: + return EINVAL; + } } |