---
name: "pthread_setschedprio"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/pthread_setschedprio"
---

# pthread\_setschedprio(3)

set scheduling priority of a thread

## NAME

pthread\_setschedprio - set scheduling priority of a thread

## LIBRARY

POSIX threads library (*libpthread*, *-lpthread*)

## SYNOPSIS

```
#include <pthread.h>
```

**int pthread\_setschedprio(pthread\_t** *thread***, int** *prio***);**

## DESCRIPTION

The **pthread\_setschedprio**() function sets the scheduling priority of the thread *thread* to the value specified in *prio*. (By contrast [**pthread\_setschedparam**(3)](/pthread_setschedparam/3.md) changes both the scheduling policy and priority of a thread.)

## RETURN VALUE

On success, this function returns 0; on error, it returns a nonzero error number. If **pthread\_setschedprio**() fails, the scheduling priority of *thread* is not changed.

## ERRORS

- **EINVAL**

  *prio* is not valid for the scheduling policy of the specified thread.

- **EPERM**

  The caller does not have appropriate privileges to set the specified priority.

- **ESRCH**

  No thread with the ID *thread* could be found.

POSIX.1 also documents an **ENOTSUP** ("attempt was made to set the priority to an unsupported value") error for [**pthread\_setschedparam**(3)](/pthread_setschedparam/3.md).

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **pthread\_setschedprio**() | Thread safety | MT-Safe |

## STANDARDS

POSIX.1-2008.

## HISTORY

glibc 2.3.4. POSIX.1-2001.

## NOTES

For a description of the permissions required to, and the effect of, changing a thread's scheduling priority, and details of the permitted ranges for priorities in each scheduling policy, see [**sched**(7)](/sched/7.md).

## SEE ALSO

[**getrlimit**(2)](/getrlimit/2.md), [**sched\_get\_priority\_min**(2)](/sched_get_priority_min/2.md), [**pthread\_attr\_init**(3)](/pthread_attr_init/3.md), [**pthread\_attr\_setinheritsched**(3)](/pthread_attr_setinheritsched/3.md), [**pthread\_attr\_setschedparam**(3)](/pthread_attr_setschedparam/3.md), [**pthread\_attr\_setschedpolicy**(3)](/pthread_attr_setschedpolicy/3.md), [**pthread\_create**(3)](/pthread_create/3.md), [**pthread\_self**(3)](/pthread_self/3.md), [**pthread\_setschedparam**(3)](/pthread_setschedparam/3.md), [**pthreads**(7)](/pthreads/7.md), [**sched**(7)](/sched/7.md)
