PTHREAD_ATTR_GETSCHEDPOLICY(3) Library Functions Manual PTHREAD_ATTR_GETSCHEDPOLICY(3)

pthread_attr_getschedpolicy pthread_attr_setschedpolicyget and set the schedpolicy attribute (REALTIME THREADS)


#include <pthread.h>

int pthread_attr_getschedpolicy(const pthread_attr_t *restrict attr,
       int *restrict policy);
int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);

The pthread_attr_getschedpolicy () and pthread_attr_setschedpolicy () functions, respectively, shall get and set the attribute in the attr argument.

The supported values of shall include SCHED_FIFO, SCHED_RR, and SCHED_OTHER, which are defined in the <sched.h> header. When threads executing with the scheduling policy SCHED_FIFO, SCHED_RR, or SCHED_SPORADIC are waiting on a mutex, they shall acquire the mutex in priority order when the mutex is unlocked.

The behavior is undefined if the value specified by the attr argument to pthread_attr_getschedpolicy () or pthread_attr_setschedpolicy () does not refer to an initialized thread attributes object.

If successful, the pthread_attr_getschedpolicy () and pthread_attr_setschedpolicy () functions shall return zero; otherwise, an error number shall be returned to indicate the error.

The pthread_attr_setschedpolicy () function shall fail if:

An attempt was made to set the attribute to an unsupported value.

The pthread_attr_setschedpolicy () function may fail if:

The value of policy is not valid.

These functions shall not return an error code of [EINTR].

None.

After these attributes have been set, a thread can be created with the specified attributes using pthread_create(3). Using these routines does not affect the current running thread.

See V2_chap02(3) for further details on thread scheduling attributes and their default settings.

If an implementation detects that the value specified by the attr argument to pthread_attr_getschedpolicy () or pthread_attr_setschedpolicy () does not refer to an initialized thread attributes object, it is recommended that the function should fail and report an [EINVAL] error.

None.

pthread_attr_destroy(3), pthread_attr_getscope(3), pthread_attr_getinheritsched(3), pthread_attr_getschedparam(3), pthread_create(3)

XBD <pthread.h>, <sched.h>

First released in Issue 5. Included for alignment with the POSIX Threads Extension.

Marked as part of the Realtime Threads Feature Group.

The pthread_attr_getschedpolicy () and pthread_attr_setschedpolicy () functions are marked as part of the Threads and Thread Execution Scheduling options.

The [ENOSYS] error condition has been removed as stubs need not be provided if an implementation does not support the Thread Execution Scheduling option.

The SCHED_SPORADIC scheduling policy is added for alignment with IEEE Std 1003.1d-1999.

The keyword is added to the pthread_attr_getschedpolicy () prototype for alignment with the ISO/IEC 9899:1999 (“ISO C99”) standard.

IEEE Std 1003.1-2001 (“POSIX.1”)/Cor 2-2004, item XSH/TC2/D6/79 is applied, adding a reference to V2_chap02(3) in the APPLICATION USAGE section.

IEEE Std 1003.1-2001 (“POSIX.1”)/Cor 2-2004, item XSH/TC2/D6/80 is applied, updating the ERRORS section to include optional errors for the case when attr refers to an uninitialized thread attribute object.

The pthread_attr_getschedpolicy () and pthread_attr_setschedpolicy () functions are marked only as part of the Thread Execution Scheduling option as the Threads option is now part of the Base.

The [EINVAL] error for an uninitialized thread attributes object is removed; this condition results in undefined behavior.

POSIX.1-2008, Technical Corrigendum 1, XSH/TC1-2008/0452 [314] is applied.

POSIX.1-2008, Technical Corrigendum 2, XSH/TC2-2008/0263 [757] is applied.

June 14, 2024 posix.fail