MySQL 26.7.0
Source Code Documentation
thread_stl.h
Go to the documentation of this file.
1// Copyright (c) 2026, Oracle and/or its affiliates.
2//
3// This program is free software; you can redistribute it and/or modify
4// it under the terms of the GNU General Public License, version 2.0,
5// as published by the Free Software Foundation.
6//
7// This program is designed to work with certain software (including
8// but not limited to OpenSSL) that is licensed under separate terms,
9// as designated in a particular file or component or in included license
10// documentation. The authors of MySQL hereby grant you an additional
11// permission to link the program and your derivative works with the
12// separately licensed software that they have either included with
13// the program or referenced in the documentation.
14//
15// This program is distributed in the hope that it will be useful,
16// but WITHOUT ANY WARRANTY; without even the implied warranty of
17// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18// GNU General Public License, version 2.0, for more details.
19//
20// You should have received a copy of the GNU General Public License
21// along with this program; if not, write to the Free Software
22// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
23
24#ifndef MYSQL_CONCURRENCY_THREAD_STL_H
25#define MYSQL_CONCURRENCY_THREAD_STL_H
26
27#ifdef MYSQL_CONCURRENCY_THREAD_SRV_H
28#error Inclusion of both thread_stl.h and thread_srv.h is prohibited.
29#endif
30
31#include <cstdint>
32#include <thread>
34
35#define MDEF_TH_KEY(key)
36
37/// @addtogroup GroupLibsMysqlConcurrency
38/// @{
39
40namespace mysql::concurrency {
41
42using Thread = std::thread;
43using Thread_key = Key_stub;
44
45/// @brief Fetches internal id, PSI id in case linked with mysqld, or
46/// internal thread id
47/// @return mysql internal id
48inline unsigned long long fetch_thread_mysql_id(std::size_t my_internal_id) {
49 return my_internal_id;
50}
51
52} // namespace mysql::concurrency
53
54#define MDEF_CREATE_THREAD(thread_key, callable, ...) \
55 mysql::concurrency::Thread(callable, __VA_ARGS__)
56
57/// @}
58
59#endif // MYSQL_CONCURRENCY_THREAD_STL_H
Wrapper to mysql thread, which matches interface of std::thread.
Definition: thread_srv.h:46
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
Definition: key_stub.h:32