Abstracts platform threads, providing an uniform API. More...
Typedefs | |
| typedef uintptr_t | Eina_Thread |
| Type for a generic thread. | |
| typedef void *(* | Eina_Thread_Cb) (void *data, Eina_Thread t) |
| Type for the definition of a thread callback function. | |
| typedef enum _Eina_Thread_Priority | Eina_Thread_Priority |
Enumerations | |
| enum | _Eina_Thread_Priority { EINA_THREAD_URGENT, EINA_THREAD_NORMAL, EINA_THREAD_BACKGROUND, EINA_THREAD_IDLE } |
Functions | |
| Eina_Thread | eina_thread_self (void) |
| Return identifier of the current thread. More... | |
| Eina_Bool | eina_thread_equal (Eina_Thread t1, Eina_Thread t2) |
| Check if two thread identifiers are the same. More... | |
| Eina_Bool | eina_thread_create (Eina_Thread *t, Eina_Thread_Priority prio, int affinity, Eina_Thread_Cb func, const void *data) |
| Create a new thread, setting its priority and affinity. More... | |
| void * | eina_thread_join (Eina_Thread t) |
| Join a currently running thread, waiting until it finishes. More... | |
| Eina_Bool | eina_thread_name_set (Eina_Thread t, const char *name) |
| Set the name of a given thread for debugging purposes. More... | |
Abstracts platform threads, providing an uniform API.
It's modeled after POSIX THREADS (pthreads), on Linux they are almost 1:1 mapping.
| Eina_Thread eina_thread_self | ( | void | ) |
Return identifier of the current thread.
| Eina_Bool eina_thread_equal | ( | Eina_Thread | t1, |
| Eina_Thread | t2 | ||
| ) |
Check if two thread identifiers are the same.
| t1 | first thread identifier to compare. |
| t2 | second thread identifier to compare. |
| Eina_Bool eina_thread_create | ( | Eina_Thread * | t, |
| Eina_Thread_Priority | prio, | ||
| int | affinity, | ||
| Eina_Thread_Cb | func, | ||
| const void * | data | ||
| ) |
Create a new thread, setting its priority and affinity.
| t[out] | where to return the thread identifier. Must not be NULL. |
| prio | thread priority to use, usually #EINA_THREAD_BACKGROUND |
| affinity | thread affinity to use. To not set affinity use -1. |
| func | function to run in the thread. Must not be NULL. |
| data | context data to provide to func as first argument. |
References EINA_FALSE, and EINA_TRUE.
Referenced by efl::eina::thread::thread().
| void* eina_thread_join | ( | Eina_Thread | t | ) |
Join a currently running thread, waiting until it finishes.
This function will block the current thread until t finishes. The returned value is the one returned by t func() and may be NULL on errors. See Error to identify problems.
| t | thread identifier to wait. |
func() or NULL on errors. Check error with Error. Referenced by efl::eina::thread::join().
| Eina_Bool eina_thread_name_set | ( | Eina_Thread | t, |
| const char * | name | ||
| ) |
Set the name of a given thread for debugging purposes.
This maps to the pthread_setname_np() GNU extension or similar if available. The name may be limited in size (possibly 16 characters including the nul byte terminator). This is useful for debugging to name a thread so external tools can display a meaningful name attached to the thread.
| t | thread to set the name of |
| name | a string to name the thread - this cannot be NULL |
References EINA_FALSE, and EINA_TRUE.