The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> pthread_attr_getschedpolicy, pthread_attr_setschedpolicy - get and set the schedpolicy attribute (REALTIME THREADS)

#### SYNOPSIS

> ``[THR TPS] #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`);``
> `
> `

#### DESCRIPTION

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

> The supported values of policy 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, [TSP] or SCHED_SPORADIC are waiting on a mutex, they shall acquire the mutex in priority order when the mutex is unlocked.

#### RETURN VALUE

> 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.

#### ERRORS

> The pthread_attr_getschedpolicy() function may fail if:

> [EINVAL]
>   The value specified by attr does not refer to an initialized thread attribute object.

> The pthread_attr_setschedpolicy() function may fail if:

> [EINVAL]
>   The value of policy is not valid, or the value specified by attr does not refer to an initialized thread attribute object.
> [ENOTSUP]
>   An attempt was made to set the attribute to an unsupported value.

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

The following sections are informative.

#### EXAMPLES

> None.

#### APPLICATION USAGE

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

> See Thread Scheduling for further details on thread scheduling attributes and their default settings.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> pthread_attr_destroy(), pthread_attr_getscope(), pthread_attr_getinheritsched(), pthread_attr_getschedparam(), pthread_create(), the Base Definitions volume of IEEE Std 1003.1-2001, <pthread.h>, <sched.h>

#### CHANGE HISTORY

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

> Marked as part of the Realtime Threads Feature Group.

#### Issue 6

> 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 restrict keyword is added to the pthread_attr_getschedpolicy() prototype for alignment with the ISO/IEC 9899:1999 standard.

> IEEE Std 1003.1-2001/Cor 2-2004, item XSH/TC2/D6/79 is applied, adding a reference to Thread Scheduling in the APPLICATION USAGE section.

> IEEE Std 1003.1-2001/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.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]