#include <stdint.h>
#include <rte_os.h>
#include <rte_compat.h>
Go to the source code of this file.
Threading functions
Simple threads functionality supplied by EAL.
Definition in file rte_thread.h.
◆ rte_thread_key
TLS key type, an opaque pointer.
Definition at line 46 of file rte_thread.h.
◆ rte_thread_priority
Thread priority values.
Enumerator |
---|
RTE_THREAD_PRIORITY_NORMAL | normal thread priority, the default
|
RTE_THREAD_PRIORITY_REALTIME_CRITICAL | highest thread priority allowed
|
Definition at line 36 of file rte_thread.h.
◆ rte_thread_self()
- Warning
- EXPERIMENTAL: this API may change without prior notice.
Get the id of the calling thread.
- Returns
- Return the thread id of the calling thread.
◆ rte_thread_set_affinity_by_id()
__rte_experimental int rte_thread_set_affinity_by_id |
( |
rte_thread_t |
thread_id, |
|
|
const rte_cpuset_t * |
cpuset |
|
) |
| |
- Warning
- EXPERIMENTAL: this API may change without prior notice.
Set the affinity of thread 'thread_id' to the cpu set specified by 'cpuset'.
- Parameters
-
thread_id | Id of the thread for which to set the affinity. |
cpuset | Pointer to CPU affinity to set. |
- Returns
- On success, return 0. On failure, return a positive errno-style error number.
◆ rte_thread_get_affinity_by_id()
__rte_experimental int rte_thread_get_affinity_by_id |
( |
rte_thread_t |
thread_id, |
|
|
rte_cpuset_t * |
cpuset |
|
) |
| |
- Warning
- EXPERIMENTAL: this API may change without prior notice.
Get the affinity of thread 'thread_id' and store it in 'cpuset'.
- Parameters
-
thread_id | Id of the thread for which to get the affinity. |
cpuset | Pointer for storing the affinity value. |
- Returns
- On success, return 0. On failure, return a positive errno-style error number.
◆ rte_thread_set_affinity()
int rte_thread_set_affinity |
( |
rte_cpuset_t * |
cpusetp | ) |
|
Set core affinity of the current thread. Support both EAL and non-EAL thread and update TLS.
- Parameters
-
cpusetp | Pointer to CPU affinity to set. |
- Returns
- On success, return 0; otherwise return -1;
◆ rte_thread_get_affinity()
void rte_thread_get_affinity |
( |
rte_cpuset_t * |
cpusetp | ) |
|
Get core affinity of the current thread.
- Parameters
-
cpusetp | Pointer to CPU affinity of current thread. It presumes input is not NULL, otherwise it causes panic. |
◆ rte_thread_get_priority()
- Warning
- EXPERIMENTAL: this API may change without prior notice.
Get the priority of a thread.
- Parameters
-
thread_id | Id of the thread for which to get priority. |
priority | Location to store the retrieved priority. |
- Returns
- On success, return 0. On failure, return a positive errno-style error number.
◆ rte_thread_set_priority()
- Warning
- EXPERIMENTAL: this API may change without prior notice.
Set the priority of a thread.
- Parameters
-
thread_id | Id of the thread for which to set priority. |
priority | Priority value to be set. |
- Returns
- On success, return 0. On failure, return a positive errno-style error number.
◆ rte_thread_key_create()
__rte_experimental int rte_thread_key_create |
( |
rte_thread_key * |
key, |
|
|
void(*)(void *) |
destructor |
|
) |
| |
Create a TLS data key visible to all threads in the process. the created key is later used to get/set a value. and optional destructor can be set to be called when a thread exits.
- Parameters
-
key | Pointer to store the allocated key. |
destructor | The function to be called when the thread exits. Ignored on Windows OS. |
- Returns
- On success, zero. On failure, a negative number and an error number is set in rte_errno. rte_errno can be: ENOMEM - Memory allocation error. ENOEXEC - Specific OS error.
◆ rte_thread_key_delete()
Delete a TLS data key visible to all threads in the process.
- Parameters
-
- Returns
- On success, zero. On failure, a negative number and an error number is set in rte_errno. rte_errno can be: EINVAL - Invalid parameter passed. ENOEXEC - Specific OS error.
◆ rte_thread_value_set()
__rte_experimental int rte_thread_value_set |
( |
rte_thread_key |
key, |
|
|
const void * |
value |
|
) |
| |
Set value bound to the TLS key on behalf of the calling thread.
- Parameters
-
key | The key allocated by rte_thread_key_create(). |
value | The value bound to the rte_thread_key key for the calling thread. |
- Returns
- On success, zero. On failure, a negative number and an error number is set in rte_errno. rte_errno can be: EINVAL - Invalid parameter passed. ENOEXEC - Specific OS error.
◆ rte_thread_value_get()
Get value bound to the TLS key on behalf of the calling thread.
- Parameters
-
- Returns
- On success, value data pointer (can also be NULL). On failure, NULL and an error number is set in rte_errno. rte_errno can be: EINVAL - Invalid parameter passed. ENOEXEC - Specific OS error.