CUBRID Engine
latest
|
#include "critical_section.h"
#include "connection_defs.h"
#include "connection_error.h"
#include "config.h"
#include "critical_section_tracker.hpp"
#include "dbtype.h"
#include "numeric_opfunc.h"
#include "perf_monitor.h"
#include "porting.h"
#include "resource_tracker.hpp"
#include "show_scan.h"
#include "system_parameter.h"
#include "thread_entry.hpp"
#include "thread_manager.hpp"
#include "tsc_timer.h"
#include <stdio.h>
#include <assert.h>
Go to the source code of this file.
Classes | |
struct | sync_stats_chunk |
Macros | |
#define | TOTAL_AND_MAX_TIMEVAL(total, max, elapsed) |
#define | NUM_ENTRIES_OF_SYNC_STATS_BLOCK 256 |
Typedefs | |
typedef struct sync_stats_chunk | SYNC_STATS_CHUNK |
Variables | |
SYNC_CRITICAL_SECTION | csectgl_Critical_sections [CRITICAL_SECTION_COUNT] |
static const char * | csect_Names [] |
SYNC_STATS_CHUNK | sync_Stats |
pthread_mutex_t | sync_Stats_lock |
#define NUM_ENTRIES_OF_SYNC_STATS_BLOCK 256 |
Definition at line 111 of file critical_section.c.
Referenced by rmutex_dump_statistics(), rwlock_dump_statistics(), sync_allocate_sync_stats(), sync_consume_sync_stats_from_pool(), sync_deallocate_sync_stats(), sync_initialize_sync_stats_chunk(), and sync_return_sync_stats_to_pool().
#define TOTAL_AND_MAX_TIMEVAL | ( | total, | |
max, | |||
elapsed | |||
) |
Definition at line 56 of file critical_section.c.
Referenced by csect_demote_critical_section(), csect_enter_critical_section(), csect_enter_critical_section_as_reader(), csect_promote_critical_section(), rmutex_lock(), rwlock_read_lock(), and rwlock_write_lock().
typedef struct sync_stats_chunk SYNC_STATS_CHUNK |
Definition at line 113 of file critical_section.c.
int csect_check_own | ( | THREAD_ENTRY * | thread_p, |
int | cs_index | ||
) |
Definition at line 1549 of file critical_section.c.
References assert, CRITICAL_SECTION_COUNT, and csect_check_own_critical_section().
|
static |
Definition at line 1567 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_LOCK, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_critical_section::lock, NO_ERROR, NULL, sync_critical_section::owner, pthread_mutex_lock, pthread_mutex_unlock, sync_critical_section::rwlock, and thread_get_thread_entry_info().
Referenced by csect_check_own().
int csect_demote | ( | THREAD_ENTRY * | thread_p, |
int | cs_index, | ||
int | wait_secs | ||
) |
Definition at line 1147 of file critical_section.c.
References assert, CRITICAL_SECTION_COUNT, and csect_demote_critical_section().
Referenced by LOG_CS_DEMOTE().
|
static |
Definition at line 912 of file critical_section.c.
References ARG_FILE_LINE, assert, sync_critical_section::cs_index, csect_name(), ER_CSS_PTHREAD_COND_BROADCAST, ER_CSS_PTHREAD_COND_WAIT, ER_CSS_PTHREAD_MUTEX_LOCK, ER_CSS_PTHREAD_MUTEX_UNLOCK, ER_ERROR_SEVERITY, er_log_debug, ER_MNT_WAITING_THREAD, ER_NOTIFICATION_SEVERITY, er_set(), er_set_with_oserror(), INF_WAIT, sync_critical_section::lock, sync_stats::max_elapsed, MONITOR_WAITING_THREAD, sync_stats::nenter, NO_ERROR, NULL, sync_stats::nwait, sync_critical_section::owner, prm_get_integer_value(), PRM_ID_MNT_WAITING_THREAD, pthread_mutex_lock, pthread_mutex_unlock, sync_critical_section::readers_ok, sync_critical_section::rwlock, sync_critical_section::stats, THREAD_CSECT_READER_SUSPENDED, thread_get_thread_entry_info(), THREAD_RESUME_DUE_TO_INTERRUPT, TOTAL_AND_MAX_TIMEVAL, sync_stats::total_elapsed, sync_critical_section::tran_index, TSC_ADD_TIMEVAL, tsc_elapsed_time_usec(), tsc_getticks(), sync_critical_section::waiting_readers, and sync_critical_section::waiting_writers.
Referenced by csect_demote().
void csect_dump_statistics | ( | FILE * | fp | ) |
Definition at line 1521 of file critical_section.c.
References CRITICAL_SECTION_COUNT, csect_name(), i, sync_stats::max_elapsed, sync_stats::nenter, sync_stats::nreenter, sync_stats::nwait, sync_critical_section::stats, sync_reset_stats_metrics(), and sync_stats::total_elapsed.
Referenced by csect_name_at(), and sync_dump_statistics().
int csect_enter | ( | THREAD_ENTRY * | thread_p, |
int | cs_index, | ||
int | wait_secs | ||
) |
Definition at line 671 of file critical_section.c.
References assert, CRITICAL_SECTION_COUNT, sync_critical_section::cs_index, and csect_enter_critical_section().
int csect_enter_as_reader | ( | THREAD_ENTRY * | thread_p, |
int | cs_index, | ||
int | wait_secs | ||
) |
Definition at line 888 of file critical_section.c.
References assert, CRITICAL_SECTION_COUNT, sync_critical_section::cs_index, and csect_enter_critical_section_as_reader().
int csect_enter_critical_section | ( | THREAD_ENTRY * | thread_p, |
SYNC_CRITICAL_SECTION * | csect, | ||
int | wait_secs | ||
) |
Definition at line 471 of file critical_section.c.
References ARG_FILE_LINE, assert, sync_critical_section::cs_index, csect_name(), csect_wait_on_writer_queue(), csect_wakeup_waiting_promoter(), ER_CSS_PTHREAD_COND_SIGNAL, ER_CSS_PTHREAD_COND_WAIT, ER_CSS_PTHREAD_MUTEX_LOCK, ER_CSS_PTHREAD_MUTEX_UNLOCK, ER_ERROR_SEVERITY, er_log_debug, ER_MNT_WAITING_THREAD, ER_NOTIFICATION_SEVERITY, er_set(), er_set_with_oserror(), INF_WAIT, sync_critical_section::lock, sync_stats::max_elapsed, MONITOR_WAITING_THREAD, sync_stats::nenter, NO_ERROR, NOT_WAIT, sync_stats::nreenter, NULL, sync_stats::nwait, sync_critical_section::owner, prm_get_integer_value(), PRM_ID_MNT_WAITING_THREAD, pthread_mutex_lock, pthread_mutex_unlock, sync_critical_section::rwlock, sync_critical_section::stats, thread_get_thread_entry_info(), TOTAL_AND_MAX_TIMEVAL, sync_stats::total_elapsed, sync_critical_section::tran_index, TSC_ADD_TIMEVAL, tsc_elapsed_time_usec(), tsc_getticks(), and sync_critical_section::waiting_writers.
Referenced by csect_enter().
int csect_enter_critical_section_as_reader | ( | THREAD_ENTRY * | thread_p, |
SYNC_CRITICAL_SECTION * | csect, | ||
int | wait_secs | ||
) |
Definition at line 693 of file critical_section.c.
References ARG_FILE_LINE, assert, sync_critical_section::cs_index, csect_name(), ER_CSS_PTHREAD_COND_WAIT, ER_CSS_PTHREAD_MUTEX_LOCK, ER_CSS_PTHREAD_MUTEX_UNLOCK, ER_ERROR_SEVERITY, er_log_debug, ER_MNT_WAITING_THREAD, ER_NOTIFICATION_SEVERITY, er_set(), er_set_with_oserror(), INF_WAIT, sync_critical_section::lock, sync_stats::max_elapsed, MONITOR_WAITING_THREAD, sync_stats::nenter, NO_ERROR, sync_stats::nreenter, NULL, sync_stats::nwait, sync_critical_section::owner, prm_get_integer_value(), PRM_ID_MNT_WAITING_THREAD, pthread_mutex_lock, pthread_mutex_unlock, sync_critical_section::readers_ok, sync_critical_section::rwlock, sync_critical_section::stats, THREAD_CSECT_READER_SUSPENDED, thread_get_thread_entry_info(), THREAD_RESUME_DUE_TO_INTERRUPT, TOTAL_AND_MAX_TIMEVAL, sync_stats::total_elapsed, TSC_ADD_TIMEVAL, tsc_elapsed_time_usec(), tsc_getticks(), sync_critical_section::waiting_readers, and sync_critical_section::waiting_writers.
Referenced by csect_enter_as_reader().
int csect_exit | ( | THREAD_ENTRY * | thread_p, |
int | cs_index | ||
) |
Definition at line 1501 of file critical_section.c.
References assert, CRITICAL_SECTION_COUNT, sync_critical_section::cs_index, and csect_exit_critical_section().
int csect_exit_critical_section | ( | THREAD_ENTRY * | thread_p, |
SYNC_CRITICAL_SECTION * | csect | ||
) |
Definition at line 1373 of file critical_section.c.
References ARG_FILE_LINE, assert, sync_critical_section::cs_index, csect_wakeup_waiting_promoter(), csect_wakeup_waiting_writer(), ER_CS_UNLOCKED_BEFORE, ER_CSS_PTHREAD_COND_BROADCAST, ER_CSS_PTHREAD_COND_SIGNAL, ER_CSS_PTHREAD_MUTEX_LOCK, ER_CSS_PTHREAD_MUTEX_UNLOCK, ER_ERROR_SEVERITY, er_set(), er_set_with_oserror(), sync_critical_section::lock, NO_ERROR, NULL, sync_critical_section::owner, pthread_mutex_lock, pthread_mutex_unlock, sync_critical_section::readers_ok, sync_critical_section::rwlock, thread_get_thread_entry_info(), sync_critical_section::tran_index, and sync_critical_section::waiting_writers.
Referenced by csect_exit().
int csect_finalize_critical_section | ( | SYNC_CRITICAL_SECTION * | csect | ) |
Definition at line 200 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_COND_DESTROY, ER_CSS_PTHREAD_MUTEX_DESTROY, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_critical_section::lock, sync_critical_section::name, NO_ERROR, NULL, sync_critical_section::owner, pthread_mutex_destroy, sync_critical_section::readers_ok, sync_critical_section::rwlock, sync_critical_section::stats, sync_deallocate_sync_stats(), sync_critical_section::tran_index, sync_critical_section::waiting_promoters_queue, sync_critical_section::waiting_readers, sync_critical_section::waiting_writers, and sync_critical_section::waiting_writers_queue.
Referenced by csect_finalize_static_critical_sections().
int csect_finalize_static_critical_sections | ( | void | ) |
Definition at line 266 of file critical_section.c.
References assert, CRITICAL_SECTION_COUNT, sync_critical_section::cs_index, csect_finalize_critical_section(), i, and NO_ERROR.
Referenced by net_server_start().
int csect_initialize_critical_section | ( | SYNC_CRITICAL_SECTION * | csect, |
const char * | name | ||
) |
Definition at line 150 of file critical_section.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR_AND_SET, sync_critical_section::cs_index, ER_CSS_PTHREAD_COND_INIT, ER_CSS_PTHREAD_MUTEX_INIT, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_critical_section::lock, sync_critical_section::name, NO_ERROR, NULL, sync_critical_section::owner, pthread_mutex_init, sync_critical_section::readers_ok, sync_critical_section::rwlock, sync_critical_section::stats, sync_allocate_sync_stats(), SYNC_TYPE_CSECT, sync_critical_section::tran_index, sync_critical_section::waiting_promoters_queue, sync_critical_section::waiting_readers, sync_critical_section::waiting_writers, and sync_critical_section::waiting_writers_queue.
Referenced by csect_initialize_static_critical_sections().
int csect_initialize_static_critical_sections | ( | void | ) |
Definition at line 240 of file critical_section.c.
References CRITICAL_SECTION_COUNT, sync_critical_section::cs_index, csect_initialize_critical_section(), csect_Names, i, and NO_ERROR.
Referenced by net_server_start().
|
static |
Definition at line 95 of file critical_section.c.
References sync_critical_section::name, and NULL.
Referenced by csect_demote_critical_section(), csect_dump_statistics(), csect_enter_critical_section(), csect_enter_critical_section_as_reader(), csect_promote_critical_section(), and csect_start_scan().
const char* csect_name_at | ( | int | cs_index | ) |
Definition at line 101 of file critical_section.c.
References assert, CRITICAL_SECTION_COUNT, and csect_Names.
Referenced by cubsync::critical_section_tracker::check().
int csect_promote | ( | THREAD_ENTRY * | thread_p, |
int | cs_index, | ||
int | wait_secs | ||
) |
Definition at line 1356 of file critical_section.c.
References assert, CRITICAL_SECTION_COUNT, and csect_promote_critical_section().
Referenced by LOG_CS_PROMOTE().
|
static |
Definition at line 1167 of file critical_section.c.
References ARG_FILE_LINE, assert, sync_critical_section::cs_index, csect_name(), csect_wait_on_promoter_queue(), ER_CSS_PTHREAD_COND_TIMEDOUT, ER_CSS_PTHREAD_COND_WAIT, ER_CSS_PTHREAD_MUTEX_LOCK, ER_CSS_PTHREAD_MUTEX_UNLOCK, ER_ERROR_SEVERITY, er_log_debug, ER_MNT_WAITING_THREAD, ER_NOTIFICATION_SEVERITY, er_set(), er_set_with_oserror(), INF_WAIT, sync_critical_section::lock, sync_stats::max_elapsed, MONITOR_WAITING_THREAD, sync_stats::nenter, NO_ERROR, NOT_WAIT, NULL, sync_stats::nwait, sync_critical_section::owner, prm_get_integer_value(), PRM_ID_MNT_WAITING_THREAD, pthread_mutex_lock, pthread_mutex_unlock, sync_critical_section::rwlock, sync_critical_section::stats, thread_get_thread_entry_info(), TOTAL_AND_MAX_TIMEVAL, sync_stats::total_elapsed, sync_critical_section::tran_index, TSC_ADD_TIMEVAL, tsc_elapsed_time_usec(), tsc_getticks(), and sync_critical_section::waiting_writers.
Referenced by csect_promote().
int csect_start_scan | ( | THREAD_ENTRY * | thread_p, |
int | show_type, | ||
DB_VALUE ** | arg_values, | ||
int | arg_cnt, | ||
void ** | ptr | ||
) |
Definition at line 1622 of file critical_section.c.
References assert, CRITICAL_SECTION_COUNT, sync_critical_section::cs_index, csect_name(), db_make_bigint(), db_make_double(), db_make_int(), db_make_null(), db_make_string(), db_make_string_copy(), DB_TYPE_NUMERIC, db_value_domain_init(), er_errid(), error(), cubthread::manager::find_by_tid(), i, sync_stats::max_elapsed, sync_stats::nenter, NO_ERROR, NULL, numeric_db_value_coerce_to_num(), sync_stats::nwait, sync_critical_section::owner, sync_critical_section::rwlock, showstmt_alloc_array_context(), showstmt_alloc_tuple_in_context(), showstmt_free_array_context(), sync_critical_section::stats, thread_get_manager(), sync_stats::total_elapsed, sync_critical_section::tran_index, sync_critical_section::waiting_promoters_queue, sync_critical_section::waiting_readers, and sync_critical_section::waiting_writers.
|
static |
Definition at line 358 of file critical_section.c.
References assert, err, sync_critical_section::lock, NO_ERROR, NULL, THREAD_CSECT_PROMOTER_RESUMED, THREAD_CSECT_PROMOTER_SUSPENDED, THREAD_RESUME_DUE_TO_INTERRUPT, thread_suspend_with_other_mutex(), and sync_critical_section::waiting_promoters_queue.
Referenced by csect_promote_critical_section().
|
static |
Definition at line 289 of file critical_section.c.
References assert, err, sync_critical_section::lock, NO_ERROR, NULL, THREAD_CSECT_WRITER_RESUMED, THREAD_CSECT_WRITER_SUSPENDED, THREAD_RESUME_DUE_TO_INTERRUPT, thread_suspend_with_other_mutex(), and sync_critical_section::waiting_writers_queue.
Referenced by csect_enter_critical_section().
|
static |
Definition at line 446 of file critical_section.c.
References NO_ERROR, NULL, THREAD_CSECT_PROMOTER_RESUMED, thread_wakeup(), and sync_critical_section::waiting_promoters_queue.
Referenced by csect_enter_critical_section(), and csect_exit_critical_section().
|
static |
Definition at line 427 of file critical_section.c.
References NO_ERROR, NULL, THREAD_CSECT_WRITER_RESUMED, thread_wakeup(), and sync_critical_section::waiting_writers_queue.
Referenced by csect_exit_critical_section().
void rmutex_dump_statistics | ( | FILE * | fp | ) |
Definition at line 2520 of file critical_section.c.
References sync_stats_chunk::block, i, sync_stats::max_elapsed, sync_stats::name, sync_stats::nenter, sync_stats_chunk::next, sync_stats::nreenter, NULL, NUM_ENTRIES_OF_SYNC_STATS_BLOCK, sync_stats_chunk::num_entry_in_use, p, pthread_mutex_lock, pthread_mutex_unlock, sync_reset_stats_metrics(), sync_Stats, sync_Stats_lock, SYNC_TYPE_RMUTEX, sync_stats::total_elapsed, and sync_stats::type.
Referenced by csect_name_at(), and sync_dump_statistics().
int rmutex_finalize | ( | SYNC_RMUTEX * | rmutex | ) |
Definition at line 2127 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_DESTROY, ER_ERROR_SEVERITY, er_set_with_oserror(), err, sync_rmutex::lock, NO_ERROR, NULL, pthread_mutex_destroy, sync_rmutex::stats, and sync_deallocate_sync_stats().
int rmutex_initialize | ( | SYNC_RMUTEX * | rmutex, |
const char * | name | ||
) |
Definition at line 2093 of file critical_section.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR_AND_SET, ER_CSS_PTHREAD_MUTEX_INIT, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_rmutex::lock, sync_rmutex::lock_cnt, NO_ERROR, NULL, sync_rmutex::owner, pthread_mutex_init, sync_rmutex::stats, sync_allocate_sync_stats(), and SYNC_TYPE_RMUTEX.
int rmutex_lock | ( | THREAD_ENTRY * | thread_p, |
SYNC_RMUTEX * | rmutex | ||
) |
Definition at line 2155 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_LOCK, ER_ERROR_SEVERITY, er_set_with_oserror(), cubthread::is_single_thread(), sync_rmutex::lock, sync_rmutex::lock_cnt, sync_stats::max_elapsed, sync_stats::nenter, NO_ERROR, sync_stats::nreenter, NULL, sync_rmutex::owner, pthread_mutex_lock, sync_rmutex::stats, thread_get_thread_entry_info(), TOTAL_AND_MAX_TIMEVAL, sync_stats::total_elapsed, tsc_elapsed_time_usec(), and tsc_getticks().
int rmutex_unlock | ( | THREAD_ENTRY * | thread_p, |
SYNC_RMUTEX * | rmutex | ||
) |
Definition at line 2216 of file critical_section.c.
References assert, cubthread::is_single_thread(), sync_rmutex::lock, sync_rmutex::lock_cnt, NO_ERROR, NULL, sync_rmutex::owner, pthread_mutex_unlock, and thread_get_thread_entry_info().
void rwlock_dump_statistics | ( | FILE * | fp | ) |
Definition at line 2048 of file critical_section.c.
References sync_stats_chunk::block, i, sync_stats::max_elapsed, sync_stats::name, sync_stats::nenter, sync_stats_chunk::next, NULL, NUM_ENTRIES_OF_SYNC_STATS_BLOCK, sync_stats_chunk::num_entry_in_use, p, pthread_mutex_lock, pthread_mutex_unlock, sync_reset_stats_metrics(), sync_Stats, sync_Stats_lock, SYNC_TYPE_RWLOCK, sync_stats::total_elapsed, and sync_stats::type.
Referenced by csect_name_at(), and sync_dump_statistics().
int rwlock_finalize | ( | SYNC_RWLOCK * | rwlock | ) |
Definition at line 1838 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_DESTROY, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_rwlock::global_lock, sync_rwlock::name, NO_ERROR, NULL, sync_rwlock::num_readers, pthread_mutex_destroy, sync_rwlock::read_lock, sync_rwlock::stats, and sync_deallocate_sync_stats().
int rwlock_initialize | ( | SYNC_RWLOCK * | rwlock, |
const char * | name | ||
) |
Definition at line 1794 of file critical_section.c.
References ARG_FILE_LINE, assert, ASSERT_ERROR_AND_SET, ER_CSS_PTHREAD_MUTEX_INIT, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_rwlock::global_lock, sync_rwlock::name, NO_ERROR, NULL, sync_rwlock::num_readers, pthread_mutex_init, sync_rwlock::read_lock, sync_rwlock::stats, sync_allocate_sync_stats(), and SYNC_TYPE_RWLOCK.
int rwlock_read_lock | ( | SYNC_RWLOCK * | rwlock | ) |
Definition at line 1876 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_LOCK, ER_CSS_PTHREAD_MUTEX_UNLOCK, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_rwlock::global_lock, sync_stats::max_elapsed, sync_stats::nenter, NO_ERROR, NULL, sync_rwlock::num_readers, pthread_mutex_lock, pthread_mutex_unlock, sync_rwlock::read_lock, sync_rwlock::stats, TOTAL_AND_MAX_TIMEVAL, sync_stats::total_elapsed, tsc_elapsed_time_usec(), and tsc_getticks().
int rwlock_read_unlock | ( | SYNC_RWLOCK * | rwlock | ) |
Definition at line 1939 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_LOCK, ER_CSS_PTHREAD_MUTEX_UNLOCK, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_rwlock::global_lock, NO_ERROR, NULL, sync_rwlock::num_readers, pthread_mutex_lock, pthread_mutex_unlock, and sync_rwlock::read_lock.
int rwlock_write_lock | ( | SYNC_RWLOCK * | rwlock | ) |
Definition at line 1991 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_LOCK, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_rwlock::global_lock, sync_stats::max_elapsed, sync_stats::nenter, NO_ERROR, NULL, pthread_mutex_lock, sync_rwlock::stats, TOTAL_AND_MAX_TIMEVAL, sync_stats::total_elapsed, tsc_elapsed_time_usec(), and tsc_getticks().
int rwlock_write_unlock | ( | SYNC_RWLOCK * | rwlock | ) |
Definition at line 2026 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_UNLOCK, ER_ERROR_SEVERITY, er_set_with_oserror(), sync_rwlock::global_lock, NO_ERROR, NULL, and pthread_mutex_unlock.
|
static |
Definition at line 2422 of file critical_section.c.
References assert, sync_stats_chunk::block, sync_stats_chunk::hint_free_entry_idx, i, sync_stats_chunk::next, NULL, NUM_ENTRIES_OF_SYNC_STATS_BLOCK, sync_stats_chunk::num_entry_in_use, p, pthread_mutex_lock, pthread_mutex_unlock, sync_allocate_sync_stats_chunk(), sync_consume_sync_stats_from_pool(), sync_Stats, sync_Stats_lock, SYNC_TYPE_NONE, and sync_stats::type.
Referenced by csect_initialize_critical_section(), rmutex_initialize(), and rwlock_initialize().
|
static |
Definition at line 2329 of file critical_section.c.
References ARG_FILE_LINE, ER_ERROR_SEVERITY, ER_OUT_OF_VIRTUAL_MEMORY, er_set(), NULL, p, and sync_initialize_sync_stats_chunk().
Referenced by sync_allocate_sync_stats().
|
static |
Definition at line 2369 of file critical_section.c.
References assert, sync_stats_chunk::block, sync_stats_chunk::hint_free_entry_idx, sync_stats::name, NULL, NUM_ENTRIES_OF_SYNC_STATS_BLOCK, sync_stats_chunk::num_entry_in_use, sync_reset_stats_metrics(), SYNC_TYPE_LAST, SYNC_TYPE_NONE, and sync_stats::type.
Referenced by sync_allocate_sync_stats().
|
static |
Definition at line 2480 of file critical_section.c.
References assert, sync_stats_chunk::block, sync_stats_chunk::next, NO_ERROR, NULL, NUM_ENTRIES_OF_SYNC_STATS_BLOCK, sync_stats_chunk::num_entry_in_use, p, pthread_mutex_lock, pthread_mutex_unlock, sync_return_sync_stats_to_pool(), sync_Stats, sync_Stats_lock, SYNC_TYPE_LAST, and sync_stats::type.
Referenced by csect_finalize_critical_section(), rmutex_finalize(), and rwlock_finalize().
void sync_dump_statistics | ( | FILE * | fp, |
SYNC_PRIMITIVE_TYPE | type | ||
) |
Definition at line 2562 of file critical_section.c.
References csect_dump_statistics(), rmutex_dump_statistics(), rwlock_dump_statistics(), SYNC_TYPE_ALL, SYNC_TYPE_CSECT, SYNC_TYPE_RMUTEX, and SYNC_TYPE_RWLOCK.
Referenced by csect_name_at(), and sthread_dump_cs_stat().
int sync_finalize_sync_stats | ( | void | ) |
Definition at line 2295 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_DESTROY, ER_ERROR_SEVERITY, er_set_with_oserror(), free_and_init, sync_stats_chunk::next, NO_ERROR, NULL, p, pthread_mutex_destroy, sync_initialize_sync_stats_chunk(), sync_Stats, and sync_Stats_lock.
Referenced by csect_name_at(), and net_server_start().
int sync_initialize_sync_stats | ( | void | ) |
Definition at line 2273 of file critical_section.c.
References ARG_FILE_LINE, assert, ER_CSS_PTHREAD_MUTEX_INIT, ER_ERROR_SEVERITY, er_set_with_oserror(), NO_ERROR, NULL, pthread_mutex_init, sync_initialize_sync_stats_chunk(), and sync_Stats_lock.
Referenced by csect_name_at(), and net_server_start().
|
static |
Definition at line 2351 of file critical_section.c.
References assert, sync_stats_chunk::block, sync_stats_chunk::hint_free_entry_idx, sync_stats_chunk::next, NO_ERROR, NULL, NUM_ENTRIES_OF_SYNC_STATS_BLOCK, and sync_stats_chunk::num_entry_in_use.
Referenced by sync_allocate_sync_stats_chunk(), sync_finalize_sync_stats(), and sync_initialize_sync_stats().
|
static |
Definition at line 2251 of file critical_section.c.
References assert, sync_stats::max_elapsed, sync_stats::nenter, sync_stats::nreenter, NULL, sync_stats::nwait, and sync_stats::total_elapsed.
Referenced by csect_dump_statistics(), rmutex_dump_statistics(), rwlock_dump_statistics(), and sync_consume_sync_stats_from_pool().
|
static |
Definition at line 2399 of file critical_section.c.
References assert, sync_stats_chunk::block, sync_stats_chunk::hint_free_entry_idx, sync_stats::name, NO_ERROR, NULL, NUM_ENTRIES_OF_SYNC_STATS_BLOCK, sync_stats_chunk::num_entry_in_use, SYNC_TYPE_LAST, SYNC_TYPE_NONE, and sync_stats::type.
Referenced by sync_deallocate_sync_stats().
|
static |
Definition at line 74 of file critical_section.c.
Referenced by csect_initialize_static_critical_sections(), and csect_name_at().
SYNC_CRITICAL_SECTION csectgl_Critical_sections[CRITICAL_SECTION_COUNT] |
Definition at line 72 of file critical_section.c.
SYNC_STATS_CHUNK sync_Stats |
Definition at line 122 of file critical_section.c.
Referenced by rmutex_dump_statistics(), rwlock_dump_statistics(), sync_allocate_sync_stats(), sync_deallocate_sync_stats(), and sync_finalize_sync_stats().
pthread_mutex_t sync_Stats_lock |
Definition at line 123 of file critical_section.c.
Referenced by rmutex_dump_statistics(), rwlock_dump_statistics(), sync_allocate_sync_stats(), sync_deallocate_sync_stats(), sync_finalize_sync_stats(), and sync_initialize_sync_stats().