MySQL 26.7.0
Source Code Documentation
dependency_tracker_psi.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_SCHEDULER_DEPENDENCY_TRACKER_PSI_H
25#define MYSQL_SCHEDULER_DEPENDENCY_TRACKER_PSI_H
26
31
32namespace mysql::scheduler {
33
34/// @brief Dependency_tracker instrumentation parameters, packed into this
35/// structure to simplify construction of a Dependency_tracker class instance
36/// and prevent mistakes when passing a lot of integer parameters into the class
37/// constructor
39 /// mutex: One key for mutexes used to synchronize access to each entry (1
40 /// mutex per 1 entry)
42 /// stage: register / activate a task
44 /// stage: add dependency
46 /// stage: check if task is ready to execute
48 /// stage: mark dependency met (task callback)
50 /// memory: memory instrumentation object
52};
53
54} // namespace mysql::scheduler
55
56#endif // MYSQL_SCHEDULER_DEPENDENCY_TRACKER_PSI_H
Polymorphism-free memory resource class with custom allocator and deallocator functions.
Definition: memory_resource.h:88
Class that wraps resources in a polymorphic manner.
PSI_stage_key Stage_key
Definition: stage_srv.h:35
PSI_mutex_key Mutex_key
Definition: mutex_srv.h:41
Definition: base_dependency_tracker.h:41
Dependency_tracker instrumentation parameters, packed into this structure to simplify construction of...
Definition: dependency_tracker_psi.h:38
allocators::Memory_resource memory_resource
memory: memory instrumentation object
Definition: dependency_tracker_psi.h:51
concurrency::Stage_key key_stage_check_ready
stage: check if task is ready to execute
Definition: dependency_tracker_psi.h:47
concurrency::Stage_key key_stage_add_dependency
stage: add dependency
Definition: dependency_tracker_psi.h:45
concurrency::Stage_key key_stage_activate_task
stage: register / activate a task
Definition: dependency_tracker_psi.h:43
concurrency::Stage_key key_stage_mark_dependency_met
stage: mark dependency met (task callback)
Definition: dependency_tracker_psi.h:49
concurrency::Mutex_key key_mt_registry_entry
mutex: One key for mutexes used to synchronize access to each entry (1 mutex per 1 entry)
Definition: dependency_tracker_psi.h:41