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.
This commit is contained in:
parent
e9b885ee55
commit
1e21e78bf7
23 changed files with 159 additions and 13 deletions
|
|
@ -91,6 +91,10 @@ int pthread_setcanceltype(int, int *);
|
|||
void pthread_testcancel(void);
|
||||
int pthread_cancel(pthread_t);
|
||||
|
||||
int pthread_getschedparam(pthread_t, int *__restrict, struct sched_param *__restrict);
|
||||
int pthread_setschedparam(pthread_t, int, const struct sched_param *);
|
||||
int pthread_setschedprio(pthread_t, int);
|
||||
|
||||
int pthread_once(pthread_once_t *, void (*)(void));
|
||||
|
||||
int pthread_mutex_init(pthread_mutex_t *__restrict, const pthread_mutexattr_t *__restrict);
|
||||
|
|
|
|||
|
|
@ -32,6 +32,9 @@ int sched_yield(void);
|
|||
#define SCHED_OTHER 0
|
||||
#define SCHED_FIFO 1
|
||||
#define SCHED_RR 2
|
||||
#define SCHED_BATCH 3
|
||||
#define SCHED_IDLE 5
|
||||
#define SCHED_RESET_ON_FORK 0x40000000
|
||||
|
||||
#ifdef _GNU_SOURCE
|
||||
#define CSIGNAL 0x000000ff
|
||||
|
|
|
|||
|
|
@ -55,6 +55,11 @@ int posix_spawnattr_getsigmask(const posix_spawnattr_t *__restrict, sigset_t *__
|
|||
int posix_spawnattr_setsigdefault(posix_spawnattr_t *__restrict, const sigset_t *__restrict);
|
||||
int posix_spawnattr_getsigdefault(const posix_spawnattr_t *__restrict, sigset_t *__restrict);
|
||||
|
||||
int posix_spawnattr_setschedparam(posix_spawnattr_t *__restrict, const struct sched_param *__restrict);
|
||||
int posix_spawnattr_getschedparam(const posix_spawnattr_t *__restrict, struct sched_param *__restrict);
|
||||
int posix_spawnattr_setschedpolicy(posix_spawnattr_t *__restrict, int);
|
||||
int posix_spawnattr_getschedpolicy(const posix_spawnattr_t *__restrict, int *);
|
||||
|
||||
int posix_spawn_file_actions_init(posix_spawn_file_actions_t *);
|
||||
int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue