24#ifndef MY_XP_THREAD_INCLUDED
25#define MY_XP_THREAD_INCLUDED
27#ifndef XCOM_STANDALONE
38#define NATIVE_THREAD_CREATE_DETACHED MY_THREAD_CREATE_DETACHED
39#define NATIVE_THREAD_CREATE_JOINABLE MY_THREAD_CREATE_JOINABLE
96 virtual int join(
void **value_ptr) = 0;
117#ifndef XCOM_STANDALONE
127 int join(
void **value_ptr)
override;
136#ifndef XCOM_STANDALONE
161 static void exit(
void *value_ptr);
Definition: my_xp_thread.h:139
My_xp_thread_impl()=default
~My_xp_thread_impl() override=default
Definition: my_xp_thread.h:118
int join(void **value_ptr) override
Suspend invoking thread until this thread terminates.
Definition: my_xp_thread.cc:69
native_thread_t * get_native_thread() override
Retrieves native thread reference.
Definition: my_xp_thread.cc:38
int cancel() override
Cancel this thread.
Definition: my_xp_thread.cc:73
~My_xp_thread_server() override
Definition: my_xp_thread.cc:36
My_xp_thread_server()
Definition: my_xp_thread.cc:32
int create(PSI_thread_key key, const native_thread_attr_t *attr, native_start_routine func, void *arg) override
Creates thread.
Definition: my_xp_thread.cc:42
int create_detached(PSI_thread_key key, native_thread_attr_t *attr, native_start_routine func, void *arg) override
Creates a detached thread.
Definition: my_xp_thread.cc:48
native_thread_handle * m_thread_handle
Definition: my_xp_thread.h:132
Definition: my_xp_thread.h:145
static void exit(void *value_ptr)
Terminate invoking thread.
Definition: my_xp_thread.cc:77
static int attr_destroy(native_thread_attr_t *attr)
Destroy thread attributes object.
Definition: my_xp_thread.cc:86
static int attr_setstacksize(native_thread_attr_t *attr, size_t stacksize)
Sets the stack size attribute of the thread attributes object referred to by attr to the value specif...
Definition: my_xp_thread.cc:96
static int attr_init(native_thread_attr_t *attr)
Initialize thread attributes object.
Definition: my_xp_thread.cc:82
static void yield()
Causes the calling thread to relinquish the CPU, and to be moved to the end of the queue and another ...
Definition: my_xp_thread.cc:111
static int attr_getstacksize(native_thread_attr_t *attr, size_t *stacksize)
Returns the stack size attribute of the thread attributes object referred to by attr in the buffer po...
Definition: my_xp_thread.cc:106
static int attr_setdetachstate(native_thread_attr_t *attr, int detachstate)
Sets the detach state attribute of the thread attributes object referred to by attr to the value spec...
Definition: my_xp_thread.cc:101
static bool init()
Initialize a MySQL context on the invoking thread.
Definition: my_xp_thread.cc:75
static int equal(native_thread_t t1, native_thread_t t2)
Compares two thread identifiers.
Definition: my_xp_thread.cc:92
Abstract class used to wrap mutex for various platforms.
Definition: my_xp_thread.h:61
virtual int create(PSI_thread_key key, const native_thread_attr_t *attr, native_start_routine func, void *arg)=0
Creates thread.
virtual ~My_xp_thread()=default
virtual int create_detached(PSI_thread_key key, native_thread_attr_t *attr, native_start_routine func, void *arg)=0
Creates a detached thread.
virtual int join(void **value_ptr)=0
Suspend invoking thread until this thread terminates.
virtual native_thread_t * get_native_thread()=0
Retrieves native thread reference.
virtual int cancel()=0
Cancel this thread.
unsigned int PSI_thread_key
Instrumented thread key.
Definition: psi_thread_bits.h:50
Common header for many mysys elements.
Defines to make different thread packages compatible.
void *(* my_start_routine)(void *)
Definition: my_thread.h:72
pthread_attr_t my_thread_attr_t
Definition: my_thread_bits.h:49
pthread_t my_thread_t
Definition: my_thread_bits.h:48
my_thread_t native_thread_t
Definition: my_xp_thread.h:33
my_start_routine native_start_routine
Definition: my_xp_thread.h:36
my_thread_attr_t native_thread_attr_t
Definition: my_xp_thread.h:35
my_thread_handle native_thread_handle
Definition: my_xp_thread.h:34
Performance schema instrumentation interface.
required string key
Definition: replication_asynchronous_connection_failover.proto:60
Definition: my_thread_bits.h:58