CUBRID Engine
latest
|
#include "dbtype_def.h"
#include "porting.h"
#include "thread_compat.hpp"
#include <pthread.h>
#include <sys/time.h>
Go to the source code of this file.
Classes | |
struct | sync_stats |
struct | sync_critical_section |
struct | sync_rwlock |
struct | sync_rmutex |
Macros | |
#define | csect_initialize_critical_section(a, b) |
#define | csect_finalize_critical_section(a) |
#define | csect_enter(a, b, c) NO_ERROR |
#define | csect_enter_as_reader(a, b, c) NO_ERROR |
#define | csect_exit(a, b) |
#define | csect_enter_critical_section(a, b, c) |
#define | csect_enter_critical_section_as_reader(a, b, c) |
#define | csect_exit_critical_section(a, b) |
#define | csect_check_own(a, b) 1 |
#define | csect_start_scan NULL |
#define | rwlock_initialize(a, b) NO_ERROR |
#define | rwlock_finalize(a) NO_ERROR |
#define | rwlock_read_lock(a) NO_ERROR |
#define | rwlock_read_unlock(a) NO_ERROR |
#define | rwlock_write_lock(a) NO_ERROR |
#define | rwlock_write_unlock(a) NO_ERROR |
#define | rmutex_initialize(a, b) NO_ERROR |
#define | rmutex_finalize(a) NO_ERROR |
#define | rmutex_lock(a, b) NO_ERROR |
#define | rmutex_unlock(a, b) NO_ERROR |
Typedefs | |
typedef struct sync_stats | SYNC_STATS |
typedef struct sync_critical_section | SYNC_CRITICAL_SECTION |
typedef struct sync_rwlock | SYNC_RWLOCK |
typedef struct sync_rmutex | SYNC_RMUTEX |
Enumerations | |
enum | { INF_WAIT = -1, NOT_WAIT = 0 } |
enum | { CSECT_WFG = 0, CSECT_LOG, CSECT_LOCATOR_SR_CLASSNAME_TABLE, CSECT_QPROC_QUERY_TABLE, CSECT_QPROC_LIST_CACHE, CSECT_DISK_CHECK, CSECT_CNV_FMT_LEXER, CSECT_HEAP_CHNGUESS, CSECT_TRAN_TABLE, CSECT_CT_OID_TABLE, CSECT_HA_SERVER_STATE, CSECT_COMPACTDB_ONE_INSTANCE, CSECT_ACL, CSECT_PARTITION_CACHE, CSECT_EVENT_LOG_FILE, CSECT_LOG_ARCHIVE, CSECT_ACCESS_STATUS, CSECT_LAST } |
enum | SYNC_PRIMITIVE_TYPE { SYNC_TYPE_NONE, SYNC_TYPE_CSECT, SYNC_TYPE_RWLOCK, SYNC_TYPE_RMUTEX, SYNC_TYPE_MUTEX, SYNC_TYPE_LAST = SYNC_TYPE_MUTEX, SYNC_TYPE_COUNT = SYNC_TYPE_LAST, SYNC_TYPE_ALL = SYNC_TYPE_LAST } |
Variables | |
static const int | CRITICAL_SECTION_COUNT = STATIC_CAST (int, CSECT_LAST) |
#define csect_check_own | ( | a, | |
b | |||
) | 1 |
Definition at line 207 of file critical_section.h.
Referenced by catcls_allocate_entry(), catcls_find_oid(), catcls_free_entry(), catcls_put_entry(), catcls_remove_entry(), catcls_replace_entry_oid(), csect_name_at(), event_log_end(), event_log_sql_string(), locator_check_class_on_heap(), locator_defence_drop_class_name_entry(), locator_drop_class_name_entry(), locator_force_drop_class_name_entry(), locator_generate_class_pseudo_oid(), locator_is_exist_class_name_entry(), locator_savepoint_class_name_entry(), lock_wait_state_to_string(), LOG_CS_OWN(), LOG_CS_OWN_WRITE_MODE(), and xlocator_find_lockhint_class_oids().
#define csect_enter | ( | a, | |
b, | |||
c | |||
) | NO_ERROR |
Definition at line 201 of file critical_section.h.
#define csect_enter_as_reader | ( | a, | |
b, | |||
c | |||
) | NO_ERROR |
Definition at line 202 of file critical_section.h.
Referenced by catcls_convert_class_oid_to_oid(), css_get_user_access_status(), css_notify_ha_log_applier_state(), disk_add_volume_extension(), disk_reserve_sectors(), disk_rv_reserve_sectors(), disk_rv_unreserve_sectors(), disk_unreserve_ordered_sectors(), locator_dump_class_names(), LOG_CS_ENTER_READ_MODE(), partition_load_context_from_cache(), xlocator_find_class_oid(), xlocator_find_lockhint_class_oids(), and xlocator_get_reserved_class_name_oid().
#define csect_enter_critical_section | ( | a, | |
b, | |||
c | |||
) |
Definition at line 204 of file critical_section.h.
Referenced by csect_name_at().
#define csect_enter_critical_section_as_reader | ( | a, | |
b, | |||
c | |||
) |
Definition at line 205 of file critical_section.h.
Referenced by csect_name_at().
#define csect_exit | ( | a, | |
b | |||
) |
Definition at line 203 of file critical_section.h.
#define csect_exit_critical_section | ( | a, | |
b | |||
) |
Definition at line 206 of file critical_section.h.
Referenced by csect_name_at().
#define csect_finalize_critical_section | ( | a | ) |
Definition at line 200 of file critical_section.h.
Referenced by csect_name_at().
#define csect_initialize_critical_section | ( | a, | |
b | |||
) |
Definition at line 199 of file critical_section.h.
Referenced by csect_name_at().
#define csect_start_scan NULL |
Definition at line 208 of file critical_section.h.
Referenced by csect_name_at(), and showstmt_scan_init().
#define rmutex_finalize | ( | a | ) | NO_ERROR |
Definition at line 218 of file critical_section.h.
Referenced by csect_name_at(), css_dealloc_conn_rmutex(), css_final_conn_list(), and logtb_finalize_tdes().
#define rmutex_initialize | ( | a, | |
b | |||
) | NO_ERROR |
Definition at line 217 of file critical_section.h.
Referenced by csect_name_at(), css_init_conn_list(), css_refuse_connection_request(), and logtb_initialize_tdes().
#define rmutex_lock | ( | a, | |
b | |||
) | NO_ERROR |
Definition at line 219 of file critical_section.h.
Referenced by clear_wait_queue_entry_and_free_buffer(), csect_name_at(), css_block_all_active_conn(), css_connection_handler_thread(), css_end_server_request(), css_get_request_id(), css_queue_packet(), css_queue_user_data_buffer(), css_remove_all_unexpected_packets(), css_return_queued_data_timeout(), css_return_queued_error(), css_return_queued_request(), css_send_abort_request(), css_shutdown_conn(), logtb_get_system_tdes(), and sboot_notify_unregister_client().
#define rmutex_unlock | ( | a, | |
b | |||
) | NO_ERROR |
Definition at line 220 of file critical_section.h.
Referenced by clear_wait_queue_entry_and_free_buffer(), csect_name_at(), css_block_all_active_conn(), css_connection_handler_thread(), css_end_server_request(), css_get_request_id(), css_queue_packet(), css_queue_user_data_buffer(), css_remove_all_unexpected_packets(), css_return_queued_data_timeout(), css_return_queued_error(), css_return_queued_request(), css_send_abort_request(), css_shutdown_conn(), logtb_get_system_tdes(), and sboot_notify_unregister_client().
#define rwlock_finalize | ( | a | ) | NO_ERROR |
Definition at line 211 of file critical_section.h.
Referenced by csect_name_at(), css_final_conn_list(), and css_init_conn_list().
#define rwlock_initialize | ( | a, | |
b | |||
) | NO_ERROR |
Definition at line 210 of file critical_section.h.
Referenced by csect_name_at(), and css_init_conn_list().
#define rwlock_read_lock | ( | a | ) | NO_ERROR |
Definition at line 212 of file critical_section.h.
Referenced by csect_name_at().
#define rwlock_read_unlock | ( | a | ) | NO_ERROR |
Definition at line 213 of file critical_section.h.
Referenced by csect_name_at().
#define rwlock_write_lock | ( | a | ) | NO_ERROR |
Definition at line 214 of file critical_section.h.
Referenced by csect_name_at().
#define rwlock_write_unlock | ( | a | ) | NO_ERROR |
Definition at line 215 of file critical_section.h.
Referenced by csect_name_at().
typedef struct sync_critical_section SYNC_CRITICAL_SECTION |
typedef struct sync_rmutex SYNC_RMUTEX |
typedef struct sync_rwlock SYNC_RWLOCK |
typedef struct sync_stats SYNC_STATS |
anonymous enum |
Enumerator | |
---|---|
INF_WAIT | |
NOT_WAIT |
Definition at line 47 of file critical_section.h.
anonymous enum |
Definition at line 57 of file critical_section.h.
enum SYNC_PRIMITIVE_TYPE |
Enumerator | |
---|---|
SYNC_TYPE_NONE | |
SYNC_TYPE_CSECT | |
SYNC_TYPE_RWLOCK | |
SYNC_TYPE_RMUTEX | |
SYNC_TYPE_MUTEX | |
SYNC_TYPE_LAST | |
SYNC_TYPE_COUNT | |
SYNC_TYPE_ALL |
Definition at line 82 of file critical_section.h.
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().
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().
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 * | cs_ptr, | ||
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 * | cs_ptr, | ||
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 * | cs_ptr | ||
) |
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 * | cs_ptr | ) |
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 * | cs_ptr, |
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().
|
inlinestatic |
Definition at line 156 of file critical_section.h.
References csect_check_own, csect_dump_statistics(), csect_enter_critical_section, csect_enter_critical_section_as_reader, csect_exit_critical_section, csect_finalize_critical_section, csect_initialize_critical_section, csect_start_scan, sync_stats::name, rmutex_dump_statistics(), rmutex_finalize, rmutex_initialize, rmutex_lock, rmutex_unlock, rwlock_dump_statistics(), rwlock_finalize, rwlock_initialize, rwlock_read_lock, rwlock_read_unlock, rwlock_write_lock, rwlock_write_unlock, sync_dump_statistics(), sync_finalize_sync_stats(), sync_initialize_sync_stats(), and sync_stats::type.
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().
int csect_start_scan | ( | THREAD_ENTRY * | thread_p, |
int | show_type, | ||
DB_VALUE ** | arg_values, | ||
int | arg_cnt, | ||
void ** | ctx | ||
) |
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.
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.
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 80 of file critical_section.h.
Referenced by cubsync::critical_section_tracker::check(), cubsync::critical_section_tracker::clear_all(), csect_check_own(), csect_demote(), csect_dump_statistics(), csect_enter(), csect_enter_as_reader(), csect_exit(), csect_finalize_static_critical_sections(), csect_initialize_static_critical_sections(), csect_name_at(), csect_promote(), and csect_start_scan().