MySQL 5.6.14 Source Code Document
|
#include "univ.i"
#include "os0thread.ic"
Go to the source code of this file.
Macros | |
#define | OS_THREAD_MAX_N srv_max_n_threads |
#define | OS_THREAD_PRIORITY_NONE 100 |
#define | OS_THREAD_PRIORITY_BACKGROUND 1 |
#define | OS_THREAD_PRIORITY_NORMAL 2 |
#define | OS_THREAD_PRIORITY_ABOVE_NORMAL 3 |
#define | DECLARE_THREAD(func) func |
#define | os_thread_create(f, a, i) os_thread_create_func(f, a, i) |
Typedefs | |
typedef pthread_t | os_thread_t |
typedef os_thread_t | os_thread_id_t |
typedef void *(* | os_thread_func_t )(void *) |
typedef void *(* | os_posix_f_t )(void *) |
Functions | |
UNIV_INTERN ibool | os_thread_eq (os_thread_id_t a, os_thread_id_t b) |
UNIV_INTERN ulint | os_thread_pf (os_thread_id_t a) |
UNIV_INTERN os_thread_t | os_thread_create_func (os_thread_func_t func, void *arg, os_thread_id_t *thread_id) |
UNIV_INTERN void | os_thread_exit (void *exit_value) UNIV_COLD __attribute__((noreturn)) |
UNIV_INTERN os_thread_id_t | os_thread_get_curr_id (void) |
UNIV_INTERN void | os_thread_yield (void) |
UNIV_INTERN void | os_thread_sleep (ulint tm) |
The interface to the operating system process and thread control primitives
Created 9/8/1995 Heikki Tuuri
Definition in file os0thread.h.
#define DECLARE_THREAD | ( | func | ) | func |
Macro for specifying a POSIX thread start function.
Definition at line 71 of file os0thread.h.
typedef os_thread_t os_thread_id_t |
In Unix we use the thread handle itself as the id of the thread
Definition at line 65 of file os0thread.h.
UNIV_INTERN os_thread_t os_thread_create_func | ( | os_thread_func_t | func, |
void * | arg, | ||
os_thread_id_t * | thread_id | ||
) |
Creates a new thread of execution. The execution starts from the function given. The start function takes a void* parameter and returns a ulint. NOTE: We count the number of threads in os_thread_exit(). A created thread should always use that to exit and not use return() to exit.
Creates a new thread of execution. The execution starts from the function given. The start function takes a void* parameter and returns an ulint.
func | in: pointer to function from which to start |
arg | in: argument to start function |
thread_id | out: id of the created thread, or NULL |
Definition at line 108 of file os0thread.cc.
UNIV_INTERN ibool os_thread_eq | ( | os_thread_id_t | a, |
os_thread_id_t | b | ||
) |
Compares two thread ids for equality.
Compares two thread ids for equality.
a | in: OS thread or thread id |
b | in: OS thread or thread id |
Definition at line 44 of file os0thread.cc.
UNIV_INTERN void os_thread_exit | ( | void * | exit_value | ) |
Exits the current thread.
exit_value | in: exit value; in Windows this void* is cast as a DWORD |
Definition at line 192 of file os0thread.cc.
UNIV_INTERN os_thread_id_t os_thread_get_curr_id | ( | void | ) |
Returns the thread identifier of current thread.
Returns the thread identifier of current thread. Currently the thread identifier in Unix is the thread handle itself. Note that in HP-UX pthread_t is a struct of 3 fields.
Definition at line 91 of file os0thread.cc.
UNIV_INTERN ulint os_thread_pf | ( | os_thread_id_t | a | ) |
Converts an OS thread id to a ulint. It is NOT guaranteed that the ulint is unique for the thread though!
Converts an OS thread id to a ulint. It is NOT guaranteed that the ulint is unique for the thread though!
a | in: OS thread identifier |
Definition at line 70 of file os0thread.cc.
UNIV_INTERN void os_thread_sleep | ( | ulint | tm | ) |
The thread sleeps at least the time given in microseconds. in: time in microseconds
The thread sleeps at least the time given in microseconds.
tm | in: time in microseconds |
Definition at line 243 of file os0thread.cc.
UNIV_INTERN void os_thread_yield | ( | void | ) |
Advises the os to give up remainder of the thread's time slice.
Definition at line 222 of file os0thread.cc.