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.
Referenced by efl::eina::swap().
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. |
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.