 |
MySQL
8.0.23
Source Code Documentation
|
Go to the documentation of this file.
28 #ifndef MY_THREAD_INCLUDED
29 #define MY_THREAD_INCLUDED
43 #define ETIME ETIMEDOUT
50 #if defined(__sparc) && (defined(__SUNPRO_CC) || defined(__SUNPRO_C))
51 #define STACK_MULTIPLIER 2UL
52 #elif defined HAVE_UBSAN
53 #define STACK_MULTIPLIER 3UL
54 #elif defined HAVE_LSAN
55 #define STACK_MULTIPLIER 4UL
57 #define STACK_MULTIPLIER 1UL
61 #define DEFAULT_THREAD_STACK (STACK_MULTIPLIER * 280UL * 1024UL)
63 #define DEFAULT_THREAD_STACK (STACK_MULTIPLIER * 216UL * 1024UL)
67 #if ETIMEDOUT == ETIME
75 #define MY_THREAD_CREATE_JOINABLE 0
76 #define MY_THREAD_CREATE_DETACHED 1
79 #define MY_THREAD_CREATE_JOINABLE PTHREAD_CREATE_JOINABLE
80 #define MY_THREAD_CREATE_DETACHED PTHREAD_CREATE_DETACHED
81 typedef void *(*my_start_routine)(
void *);
86 return GetCurrentThreadId();
88 return pthread_self();
96 return pthread_equal(t1, t2);
102 attr->dwStackSize = 0;
107 return pthread_attr_init(attr);
113 attr->dwStackSize = 0;
118 return pthread_attr_destroy(attr);
125 attr->dwStackSize = (DWORD)stacksize;
128 return pthread_attr_setstacksize(attr, stacksize);
135 attr->detachstate = detachstate;
138 return pthread_attr_setdetachstate(attr, detachstate);
145 *stacksize = (size_t)attr->dwStackSize;
148 return pthread_attr_getstacksize(attr, stacksize);
static void my_thread_yield()
Definition: my_thread.h:152
static int my_thread_attr_getstacksize(my_thread_attr_t *attr, size_t *stacksize)
Definition: my_thread.h:142
bool my_thread_global_init()
initialize thread environment
Definition: my_thr_init.cc:158
bool my_thread_init()
Allocate thread specific memory for the thread, used by mysys and dbug.
Definition: my_thr_init.cc:268
int my_thread_join(my_thread_handle *thread, void **value_ptr)
Definition: my_thread.cc:99
pthread_attr_t my_thread_attr_t
Definition: my_thread_bits.h:48
void my_thread_global_end()
Definition: my_thr_init.cc:205
#define ETIME
Definition: my_thread.h:43
static int is_timeout(int e)
Definition: my_thread.h:66
void my_thread_global_reinit()
Re-initialize components initialized early with my_thread_global_init.
Definition: my_thr_init.cc:117
static int my_thread_attr_setdetachstate(my_thread_attr_t *attr, int detachstate)
Definition: my_thread.h:132
void *(* my_start_routine)(void *)
Definition: my_thread.h:81
void my_thread_end()
Deallocate memory used by the thread for book-keeping.
Definition: my_thr_init.cc:303
int my_thread_create(my_thread_handle *thread, const my_thread_attr_t *attr, my_start_routine func, void *arg)
Definition: my_thread.cc:56
static int my_thread_equal(my_thread_t t1, my_thread_t t2)
Definition: my_thread.h:92
void my_thread_exit(void *value_ptr)
Definition: my_thread.cc:134
Definition: my_thread_bits.h:51
static int my_thread_attr_destroy(my_thread_attr_t *attr)
Definition: my_thread.h:111
static int my_thread_attr_init(my_thread_attr_t *attr)
Definition: my_thread.h:100
#define MY_THREAD_CREATE_JOINABLE
Definition: my_thread.h:79
int my_thread_cancel(my_thread_handle *thread)
Definition: my_thread.cc:117
static int my_thread_attr_setstacksize(my_thread_attr_t *attr, size_t stacksize)
Definition: my_thread.h:122
pthread_t my_thread_t
Definition: my_thread_bits.h:47
static my_thread_t my_thread_self()
Definition: my_thread.h:84
#define ETIMEDOUT
Definition: my_thread.h:47