summaryrefslogtreecommitdiff
path: root/src/internal/pthread_impl.h
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-11-11 15:38:04 -0500
committerRich Felker <dalias@aerifal.cx>2012-11-11 15:38:04 -0500
commit1e21e78bf7a5c24c217446d8760be7b7188711c2 (patch)
tree83920f2f5aad8bc090ddb55e57f74e062743e592 /src/internal/pthread_impl.h
parente9b885ee550e8a3eabc9d11c469baf1cfaf64f55 (diff)
downloadmusl-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/internal/pthread_impl.h')
-rw-r--r--src/internal/pthread_impl.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/internal/pthread_impl.h b/src/internal/pthread_impl.h
index 9424a5b7..4215e67a 100644
--- a/src/internal/pthread_impl.h
+++ b/src/internal/pthread_impl.h
@@ -40,6 +40,8 @@ struct pthread {
locale_t locale;
int killlock[2];
int exitlock[2];
+ int startlock[2];
+ unsigned long sigmask[__SYSCALL_SSLEN/sizeof(long)];
};
struct __timer {
@@ -53,6 +55,9 @@ struct __timer {
#define _a_guardsize __u.__s[1]
#define _a_stackaddr __u.__s[2]
#define _a_detach __u.__i[3*__SU+0]
+#define _a_sched __u.__i[3*__SU+1]
+#define _a_policy __u.__i[3*__SU+2]
+#define _a_prio __u.__i[3*__SU+3]
#define _m_type __u.__i[0]
#define _m_lock __u.__i[1]
#define _m_waiters __u.__i[2]