136 lines
5.0 KiB
C

/* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software Foundation,
51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
#ifndef PLUGIN_PSI_INCLUDED
#define PLUGIN_PSI_INCLUDED
#include "plugin_server_include.h"
#ifdef HAVE_PSI_INTERFACE
/*
Register the psi keys for mutexes
@param[in] mutexes PSI mutex info
@param[in] mutex_count The number of elements in mutexes
*/
void register_group_replication_mutex_psi_keys(PSI_mutex_info mutexes[],
size_t mutex_count);
/*
Register the psi keys for conditions
@param[in] conditions PSI condition info
@param[in] cond_count The number of elements in conditions
*/
void register_group_replication_cond_psi_keys(PSI_cond_info conditions[],
size_t cond_count);
/*
Register the psi keys for threads
@param[in] threads PSI thread info
@param[in] thread_count The number of elements in threads
*/
void register_group_replication_thread_psi_keys(PSI_thread_info threads[],
size_t thread_count);
/*
Register the psi keys for rwlocks
@param[in] keys PSI rwlock info
@param[in] count The number of elements in keys
*/
void register_group_replication_rwlock_psi_keys(PSI_rwlock_info *keys,
size_t count);
/*
Register the psi keys for mutexes, conditions, threads and rwlocks
*/
void register_all_group_replication_psi_keys();
#endif /* HAVE_PSI_INTERFACE */
extern PSI_mutex_key
key_GR_LOCK_applier_module_run,
key_GR_LOCK_applier_module_suspend,
key_GR_LOCK_cert_broadcast_run,
key_GR_LOCK_cert_broadcast_dispatcher_run,
key_GR_LOCK_certification_info,
key_GR_LOCK_cert_members,
key_GR_LOCK_channel_observation_list,
key_GR_LOCK_delayed_init_run,
key_GR_LOCK_delayed_init_server_ready,
key_GR_LOCK_group_part_handler_run,
key_GR_LOCK_group_part_handler_abort,
key_GR_LOCK_view_modification_wait,
key_GR_LOCK_group_info_manager,
key_GR_LOCK_pipeline_continuation,
key_GR_LOCK_synchronized_queue,
key_GR_LOCK_count_down_latch,
key_GR_LOCK_wait_ticket,
key_GR_LOCK_read_mode,
key_GR_LOCK_recovery_module_run,
key_GR_LOCK_recovery,
key_GR_LOCK_recovery_donor_selection,
key_GR_LOCK_session_thread_method_exec,
key_GR_LOCK_session_thread_run,
key_GR_LOCK_plugin_running,
key_GR_LOCK_force_members_running,
key_GR_LOCK_write_lock_protection,
key_GR_LOCK_pipeline_stats_flow_control,
key_GR_LOCK_pipeline_stats_transactions_waiting_apply,
key_GR_LOCK_trx_unlocking;
extern PSI_cond_key
key_GR_COND_applier_module_run,
key_GR_COND_applier_module_suspend,
key_GR_COND_applier_module_wait,
key_GR_COND_cert_broadcast_run,
key_GR_COND_cert_broadcast_dispatcher_run,
key_GR_COND_delayed_init_run,
key_GR_COND_delayed_init_server_ready,
key_GR_COND_group_part_handler_run,
key_GR_COND_group_part_handler_abort,
key_GR_COND_view_modification_wait,
key_GR_COND_pipeline_continuation,
key_GR_COND_synchronized_queue,
key_GR_COND_count_down_latch,
key_GR_COND_wait_ticket,
key_GR_COND_recovery_module_run,
key_GR_COND_recovery,
key_GR_COND_session_thread_method_exec,
key_GR_COND_session_thread_run,
key_GR_COND_pipeline_stats_flow_control;
extern PSI_thread_key
key_GR_THD_applier_module_receiver,
key_GR_THD_cert_broadcast,
key_GR_THD_delayed_init,
key_GR_THD_plugin_session,
key_GR_THD_group_partition_handler,
key_GR_THD_recovery;
extern PSI_rwlock_key
key_GR_RWLOCK_cert_stable_gtid_set,
key_GR_RWLOCK_io_cache_unused_list,
key_GR_RWLOCK_plugin_stop,
key_GR_RWLOCK_gcs_operations,
key_GR_RWLOCK_gcs_operations_finalize_ongoing;
#endif /* PLUGIN_PSI_INCLUDED */