24#ifndef MYSQL_CONCURRENCY_THREAD_SRV_H
25#define MYSQL_CONCURRENCY_THREAD_SRV_H
27#ifdef MYSQL_CONCURRENCY_THREAD_STL_H
28#error Inclusion of both thread_stl.h and thread_srv.h is prohibited.
39#define MDEF_TH_KEY(key) key,
58 template <
class Callable,
class... Args>
64 template <
class Callable,
class... Args>
65 Thread(Callable &&run_func, Args &&...args);
92 [[maybe_unused]] std::size_t my_internal_id) {
93#ifdef HAVE_PSI_THREAD_INTERFACE
97 return my_internal_id;
103#define MDEF_CREATE_THREAD(thread_key, callable, ...) \
104 mysql::concurrency::Thread(thread_key, callable, __VA_ARGS__)
Wrapper to mysql thread, which matches interface of std::thread.
Definition: thread_srv.h:46
int m_creation_error_code
Thread creation error code.
Definition: thread_srv.h:86
Thread_key m_thread_key
Thread key.
Definition: thread_srv.h:84
Thread & operator=(Thread &&)=default
bool joinable() const
Checks whether a thread was created successfully.
Definition: thread_srv.h:72
my_thread_handle m_thread_handle
Mysql thread handle.
Definition: thread_srv.h:80
Thread(Thread &&)=default
Thread & operator=(const Thread &src)=delete
int creation_error_code() const
Returns the thread creation error code.
Definition: thread_srv.h:76
Thread(const Thread &)=delete
void join()
Joins thread.
Definition: thread_srv.h:68
my_thread_attr_t m_thread_attr
Thread attributes.
Definition: thread_srv.h:82
#define PSI_THREAD_CALL(M)
Definition: psi_thread.h:36
struct PSI_thread PSI_thread
Definition: psi_thread_bits.h:82
unsigned int PSI_thread_key
Instrumented thread key.
Definition: psi_thread_bits.h:50
Instrumentation helpers for mysys threads.
int my_thread_join(my_thread_handle *thread, void **value_ptr)
Definition: my_thread.cc:122
pthread_attr_t my_thread_attr_t
Definition: my_thread_bits.h:49
Instrumentation helpers for memory allocation.
Definition: cache_line_size.h:31
unsigned long long fetch_thread_mysql_id(std::size_t my_internal_id)
Fetches internal id, PSI id in case linked with mysqld, or internal thread id.
Definition: thread_srv.h:91
PSI_thread_key Thread_key
Definition: thread_srv.h:43
Instrumentation helpers for conditions.
Definition: my_thread_bits.h:58