Commit 4c643e0e authored by marko's avatar marko

Merge r1239 from

branches/zip: Make mutex_own() work with UNIV_DEBUG, without UNIV_SYNC_DEBUG.
parent a4b7a332
...@@ -802,9 +802,7 @@ buf_awe_map_page_to_frame( ...@@ -802,9 +802,7 @@ buf_awe_map_page_to_frame(
{ {
buf_block_t* bck; buf_block_t* bck;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(block); ut_ad(block);
if (block->frame) { if (block->frame) {
...@@ -900,9 +898,7 @@ buf_block_make_young( ...@@ -900,9 +898,7 @@ buf_block_make_young(
/*=================*/ /*=================*/
buf_block_t* block) /* in: block to make younger */ buf_block_t* block) /* in: block to make younger */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&(buf_pool->mutex))); ut_ad(!mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
/* Note that we read freed_page_clock's without holding any mutex: /* Note that we read freed_page_clock's without holding any mutex:
this is allowed since the result is used only in heuristics */ this is allowed since the result is used only in heuristics */
...@@ -1635,10 +1631,9 @@ buf_page_init( ...@@ -1635,10 +1631,9 @@ buf_page_init(
in units of a page */ in units of a page */
buf_block_t* block) /* in: block to init */ buf_block_t* block) /* in: block to init */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
ut_ad(mutex_own(&(block->mutex))); ut_ad(mutex_own(&(block->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(block->state != BUF_BLOCK_FILE_PAGE); ut_a(block->state != BUF_BLOCK_FILE_PAGE);
/* Set the state of the block */ /* Set the state of the block */
......
...@@ -48,10 +48,7 @@ buf_flush_insert_into_flush_list( ...@@ -48,10 +48,7 @@ buf_flush_insert_into_flush_list(
/*=============================*/ /*=============================*/
buf_block_t* block) /* in: block which is modified */ buf_block_t* block) /* in: block which is modified */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(block->state == BUF_BLOCK_FILE_PAGE); ut_a(block->state == BUF_BLOCK_FILE_PAGE);
ut_ad((UT_LIST_GET_FIRST(buf_pool->flush_list) == NULL) ut_ad((UT_LIST_GET_FIRST(buf_pool->flush_list) == NULL)
...@@ -77,9 +74,7 @@ buf_flush_insert_sorted_into_flush_list( ...@@ -77,9 +74,7 @@ buf_flush_insert_sorted_into_flush_list(
buf_block_t* prev_b; buf_block_t* prev_b;
buf_block_t* b; buf_block_t* b;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
prev_b = NULL; prev_b = NULL;
b = UT_LIST_GET_FIRST(buf_pool->flush_list); b = UT_LIST_GET_FIRST(buf_pool->flush_list);
...@@ -111,10 +106,8 @@ buf_flush_ready_for_replace( ...@@ -111,10 +106,8 @@ buf_flush_ready_for_replace(
buf_block_t* block) /* in: buffer control block, must be in state buf_block_t* block) /* in: buffer control block, must be in state
BUF_BLOCK_FILE_PAGE and in the LRU list */ BUF_BLOCK_FILE_PAGE and in the LRU list */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
ut_ad(mutex_own(&block->mutex)); ut_ad(mutex_own(&block->mutex));
#endif /* UNIV_SYNC_DEBUG */
if (block->state != BUF_BLOCK_FILE_PAGE) { if (block->state != BUF_BLOCK_FILE_PAGE) {
ut_print_timestamp(stderr); ut_print_timestamp(stderr);
fprintf(stderr, fprintf(stderr,
...@@ -147,10 +140,8 @@ buf_flush_ready_for_flush( ...@@ -147,10 +140,8 @@ buf_flush_ready_for_flush(
BUF_BLOCK_FILE_PAGE */ BUF_BLOCK_FILE_PAGE */
ulint flush_type)/* in: BUF_FLUSH_LRU or BUF_FLUSH_LIST */ ulint flush_type)/* in: BUF_FLUSH_LRU or BUF_FLUSH_LIST */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
ut_ad(mutex_own(&(block->mutex))); ut_ad(mutex_own(&(block->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(block->state == BUF_BLOCK_FILE_PAGE); ut_a(block->state == BUF_BLOCK_FILE_PAGE);
if ((ut_dulint_cmp(block->oldest_modification, ut_dulint_zero) > 0) if ((ut_dulint_cmp(block->oldest_modification, ut_dulint_zero) > 0)
......
...@@ -549,9 +549,7 @@ buf_LRU_old_adjust_len(void) ...@@ -549,9 +549,7 @@ buf_LRU_old_adjust_len(void)
ulint new_len; ulint new_len;
ut_a(buf_pool->LRU_old); ut_a(buf_pool->LRU_old);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(3 * (BUF_LRU_OLD_MIN_LEN / 8) > BUF_LRU_OLD_TOLERANCE + 5); ut_ad(3 * (BUF_LRU_OLD_MIN_LEN / 8) > BUF_LRU_OLD_TOLERANCE + 5);
for (;;) { for (;;) {
...@@ -593,6 +591,7 @@ buf_LRU_old_init(void) ...@@ -593,6 +591,7 @@ buf_LRU_old_init(void)
{ {
buf_block_t* block; buf_block_t* block;
ut_ad(mutex_own(&(buf_pool->mutex)));
ut_a(UT_LIST_GET_LEN(buf_pool->LRU) == BUF_LRU_OLD_MIN_LEN); ut_a(UT_LIST_GET_LEN(buf_pool->LRU) == BUF_LRU_OLD_MIN_LEN);
/* We first initialize all blocks in the LRU list as old and then use /* We first initialize all blocks in the LRU list as old and then use
...@@ -624,9 +623,7 @@ buf_LRU_remove_block( ...@@ -624,9 +623,7 @@ buf_LRU_remove_block(
{ {
ut_ad(buf_pool); ut_ad(buf_pool);
ut_ad(block); ut_ad(block);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(block->state == BUF_BLOCK_FILE_PAGE); ut_a(block->state == BUF_BLOCK_FILE_PAGE);
ut_a(block->in_LRU_list); ut_a(block->in_LRU_list);
...@@ -690,9 +687,7 @@ buf_LRU_add_block_to_end_low( ...@@ -690,9 +687,7 @@ buf_LRU_add_block_to_end_low(
ut_ad(buf_pool); ut_ad(buf_pool);
ut_ad(block); ut_ad(block);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(block->state == BUF_BLOCK_FILE_PAGE); ut_a(block->state == BUF_BLOCK_FILE_PAGE);
...@@ -755,9 +750,7 @@ buf_LRU_add_block_low( ...@@ -755,9 +750,7 @@ buf_LRU_add_block_low(
ut_ad(buf_pool); ut_ad(buf_pool);
ut_ad(block); ut_ad(block);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(block->state == BUF_BLOCK_FILE_PAGE); ut_a(block->state == BUF_BLOCK_FILE_PAGE);
ut_a(!block->in_LRU_list); ut_a(!block->in_LRU_list);
...@@ -858,10 +851,9 @@ buf_LRU_block_free_non_file_page( ...@@ -858,10 +851,9 @@ buf_LRU_block_free_non_file_page(
/*=============================*/ /*=============================*/
buf_block_t* block) /* in: block, must not contain a file page */ buf_block_t* block) /* in: block, must not contain a file page */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
ut_ad(mutex_own(&block->mutex)); ut_ad(mutex_own(&block->mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(block); ut_ad(block);
ut_a((block->state == BUF_BLOCK_MEMORY) ut_a((block->state == BUF_BLOCK_MEMORY)
...@@ -898,10 +890,8 @@ buf_LRU_block_remove_hashed_page( ...@@ -898,10 +890,8 @@ buf_LRU_block_remove_hashed_page(
be in a state where it can be freed; there be in a state where it can be freed; there
may or may not be a hash index to the page */ may or may not be a hash index to the page */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
ut_ad(mutex_own(&block->mutex)); ut_ad(mutex_own(&block->mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(block); ut_ad(block);
ut_a(block->state == BUF_BLOCK_FILE_PAGE); ut_a(block->state == BUF_BLOCK_FILE_PAGE);
...@@ -961,10 +951,9 @@ buf_LRU_block_free_hashed_page( ...@@ -961,10 +951,9 @@ buf_LRU_block_free_hashed_page(
buf_block_t* block) /* in: block, must contain a file page and buf_block_t* block) /* in: block, must contain a file page and
be in a state where it can be freed */ be in a state where it can be freed */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
ut_ad(mutex_own(&block->mutex)); ut_ad(mutex_own(&block->mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_a(block->state == BUF_BLOCK_REMOVE_HASH); ut_a(block->state == BUF_BLOCK_REMOVE_HASH);
block->state = BUF_BLOCK_MEMORY; block->state = BUF_BLOCK_MEMORY;
......
...@@ -86,9 +86,7 @@ dict_hdr_flush_row_id(void) ...@@ -86,9 +86,7 @@ dict_hdr_flush_row_id(void)
dulint id; dulint id;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
id = dict_sys->row_id; id = dict_sys->row_id;
......
...@@ -212,9 +212,7 @@ dict_build_table_def_step( ...@@ -212,9 +212,7 @@ dict_build_table_def_step(
ulint i; ulint i;
ulint row_len; ulint row_len;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
table = node->table; table = node->table;
...@@ -312,9 +310,7 @@ dict_create_sys_indexes_tuple( ...@@ -312,9 +310,7 @@ dict_create_sys_indexes_tuple(
dfield_t* dfield; dfield_t* dfield;
byte* ptr; byte* ptr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(index && heap); ut_ad(index && heap);
sys_indexes = dict_sys->sys_indexes; sys_indexes = dict_sys->sys_indexes;
...@@ -512,9 +508,7 @@ dict_build_index_def_step( ...@@ -512,9 +508,7 @@ dict_build_index_def_step(
dtuple_t* row; dtuple_t* row;
trx_t* trx; trx_t* trx;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
trx = thr_get_trx(thr); trx = thr_get_trx(thr);
...@@ -585,9 +579,7 @@ dict_create_index_tree_step( ...@@ -585,9 +579,7 @@ dict_create_index_tree_step(
btr_pcur_t pcur; btr_pcur_t pcur;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
index = node->index; index = node->index;
table = node->table; table = node->table;
...@@ -642,10 +634,7 @@ dict_drop_index_tree( ...@@ -642,10 +634,7 @@ dict_drop_index_tree(
byte* ptr; byte* ptr;
ulint len; ulint len;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(!dict_table_is_comp(dict_sys->sys_indexes)); ut_a(!dict_table_is_comp(dict_sys->sys_indexes));
ptr = rec_get_nth_field_old(rec, DICT_SYS_INDEXES_PAGE_NO_FIELD, &len); ptr = rec_get_nth_field_old(rec, DICT_SYS_INDEXES_PAGE_NO_FIELD, &len);
...@@ -718,10 +707,7 @@ dict_truncate_index_tree( ...@@ -718,10 +707,7 @@ dict_truncate_index_tree(
ulint comp; ulint comp;
dict_index_t* index; dict_index_t* index;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(!dict_table_is_comp(dict_sys->sys_indexes)); ut_a(!dict_table_is_comp(dict_sys->sys_indexes));
rec = btr_pcur_get_rec(pcur); rec = btr_pcur_get_rec(pcur);
ptr = rec_get_nth_field_old(rec, DICT_SYS_INDEXES_PAGE_NO_FIELD, &len); ptr = rec_get_nth_field_old(rec, DICT_SYS_INDEXES_PAGE_NO_FIELD, &len);
...@@ -907,9 +893,7 @@ dict_create_table_step( ...@@ -907,9 +893,7 @@ dict_create_table_step(
trx_t* trx; trx_t* trx;
ut_ad(thr); ut_ad(thr);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
trx = thr_get_trx(thr); trx = thr_get_trx(thr);
...@@ -1016,9 +1000,7 @@ dict_create_index_step( ...@@ -1016,9 +1000,7 @@ dict_create_index_step(
trx_t* trx; trx_t* trx;
ut_ad(thr); ut_ad(thr);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
trx = thr_get_trx(thr); trx = thr_get_trx(thr);
...@@ -1440,9 +1422,7 @@ dict_create_add_foreigns_to_dictionary( ...@@ -1440,9 +1422,7 @@ dict_create_add_foreigns_to_dictionary(
ulint number = start_id + 1; ulint number = start_id + 1;
ulint error; ulint error;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (NULL == dict_table_get_low("SYS_FOREIGN")) { if (NULL == dict_table_get_low("SYS_FOREIGN")) {
fprintf(stderr, fprintf(stderr,
......
...@@ -689,9 +689,7 @@ dict_table_get_on_id( ...@@ -689,9 +689,7 @@ dict_table_get_on_id(
if we are doing a rollback to handle an error in TABLE if we are doing a rollback to handle an error in TABLE
CREATE, for example, we already have the mutex! */ CREATE, for example, we already have the mutex! */
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
return(dict_table_get_on_id_low(table_id)); return(dict_table_get_on_id_low(table_id));
} }
...@@ -854,9 +852,7 @@ dict_table_add_to_cache( ...@@ -854,9 +852,7 @@ dict_table_add_to_cache(
ulint row_len; ulint row_len;
ut_ad(table); ut_ad(table);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(table->n_def == table->n_cols - DATA_N_SYS_COLS); ut_ad(table->n_def == table->n_cols - DATA_N_SYS_COLS);
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N); ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
ut_ad(table->cached == FALSE); ut_ad(table->cached == FALSE);
...@@ -1003,9 +999,7 @@ dict_table_rename_in_cache( ...@@ -1003,9 +999,7 @@ dict_table_rename_in_cache(
ibool success; ibool success;
ut_ad(table); ut_ad(table);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
old_size = mem_heap_get_size(table->heap); old_size = mem_heap_get_size(table->heap);
...@@ -1209,9 +1203,7 @@ dict_table_change_id_in_cache( ...@@ -1209,9 +1203,7 @@ dict_table_change_id_in_cache(
dulint new_id) /* in: new id to set */ dulint new_id) /* in: new id to set */
{ {
ut_ad(table); ut_ad(table);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N); ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
/* Remove the table from the hash table of id's */ /* Remove the table from the hash table of id's */
...@@ -1238,9 +1230,7 @@ dict_table_remove_from_cache( ...@@ -1238,9 +1230,7 @@ dict_table_remove_from_cache(
ulint size; ulint size;
ut_ad(table); ut_ad(table);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N); ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
#if 0 #if 0
...@@ -1354,9 +1344,7 @@ dict_index_add_to_cache( ...@@ -1354,9 +1344,7 @@ dict_index_add_to_cache(
ulint i; ulint i;
ut_ad(index); ut_ad(index);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(index->n_def == index->n_fields); ut_ad(index->n_def == index->n_fields);
ut_ad(index->magic_n == DICT_INDEX_MAGIC_N); ut_ad(index->magic_n == DICT_INDEX_MAGIC_N);
...@@ -1452,9 +1440,7 @@ dict_index_remove_from_cache( ...@@ -1452,9 +1440,7 @@ dict_index_remove_from_cache(
ut_ad(table && index); ut_ad(table && index);
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N); ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
ut_ad(index->magic_n == DICT_INDEX_MAGIC_N); ut_ad(index->magic_n == DICT_INDEX_MAGIC_N);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
rw_lock_free(&index->lock); rw_lock_free(&index->lock);
...@@ -1484,9 +1470,7 @@ dict_index_find_cols( ...@@ -1484,9 +1470,7 @@ dict_index_find_cols(
ut_ad(table && index); ut_ad(table && index);
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N); ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
for (i = 0; i < index->n_fields; i++) { for (i = 0; i < index->n_fields; i++) {
ulint j; ulint j;
...@@ -1648,9 +1632,7 @@ dict_index_build_internal_clust( ...@@ -1648,9 +1632,7 @@ dict_index_build_internal_clust(
ut_ad(table && index); ut_ad(table && index);
ut_ad(index->type & DICT_CLUSTERED); ut_ad(index->type & DICT_CLUSTERED);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N); ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
/* Create a new index object with certainly enough fields */ /* Create a new index object with certainly enough fields */
...@@ -1803,9 +1785,7 @@ dict_index_build_internal_non_clust( ...@@ -1803,9 +1785,7 @@ dict_index_build_internal_non_clust(
ut_ad(table && index); ut_ad(table && index);
ut_ad(0 == (index->type & DICT_CLUSTERED)); ut_ad(0 == (index->type & DICT_CLUSTERED));
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(table->magic_n == DICT_TABLE_MAGIC_N); ut_ad(table->magic_n == DICT_TABLE_MAGIC_N);
/* The clustered index should be the first in the list of indexes */ /* The clustered index should be the first in the list of indexes */
...@@ -1918,9 +1898,7 @@ dict_foreign_remove_from_cache( ...@@ -1918,9 +1898,7 @@ dict_foreign_remove_from_cache(
/*===========================*/ /*===========================*/
dict_foreign_t* foreign) /* in, own: foreign constraint */ dict_foreign_t* foreign) /* in, own: foreign constraint */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(foreign); ut_a(foreign);
if (foreign->referenced_table) { if (foreign->referenced_table) {
...@@ -1951,9 +1929,7 @@ dict_foreign_find( ...@@ -1951,9 +1929,7 @@ dict_foreign_find(
{ {
dict_foreign_t* foreign; dict_foreign_t* foreign;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
foreign = UT_LIST_GET_FIRST(table->foreign_list); foreign = UT_LIST_GET_FIRST(table->foreign_list);
...@@ -2113,9 +2089,7 @@ dict_foreign_add_to_cache( ...@@ -2113,9 +2089,7 @@ dict_foreign_add_to_cache(
ibool added_to_referenced_list= FALSE; ibool added_to_referenced_list= FALSE;
FILE* ef = dict_foreign_err_file; FILE* ef = dict_foreign_err_file;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
for_table = dict_table_check_if_in_cache_low( for_table = dict_table_check_if_in_cache_low(
foreign->foreign_table_name); foreign->foreign_table_name);
...@@ -2794,9 +2768,7 @@ dict_create_foreign_constraints_low( ...@@ -2794,9 +2768,7 @@ dict_create_foreign_constraints_low(
const char* column_names[500]; const char* column_names[500];
const char* referenced_table_name; const char* referenced_table_name;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
table = dict_table_get_low(name); table = dict_table_get_low(name);
...@@ -3425,9 +3397,7 @@ dict_foreign_parse_drop_constraints( ...@@ -3425,9 +3397,7 @@ dict_foreign_parse_drop_constraints(
str = dict_strip_comments(*(trx->mysql_query_str)); str = dict_strip_comments(*(trx->mysql_query_str));
ptr = str; ptr = str;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
loop: loop:
ptr = dict_scan_to(ptr, "DROP"); ptr = dict_scan_to(ptr, "DROP");
...@@ -3864,9 +3834,7 @@ dict_foreign_print_low( ...@@ -3864,9 +3834,7 @@ dict_foreign_print_low(
{ {
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
fprintf(stderr, " FOREIGN KEY CONSTRAINT %s: %s (", fprintf(stderr, " FOREIGN KEY CONSTRAINT %s: %s (",
foreign->id, foreign->foreign_table_name); foreign->id, foreign->foreign_table_name);
...@@ -3931,9 +3899,7 @@ dict_table_print_low( ...@@ -3931,9 +3899,7 @@ dict_table_print_low(
dict_foreign_t* foreign; dict_foreign_t* foreign;
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
dict_update_statistics_low(table, TRUE); dict_update_statistics_low(table, TRUE);
...@@ -3989,9 +3955,7 @@ dict_col_print_low( ...@@ -3989,9 +3955,7 @@ dict_col_print_low(
{ {
dtype_t type; dtype_t type;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
dict_col_copy_type(col, &type); dict_col_copy_type(col, &type);
fprintf(stderr, "%s: ", dict_table_get_col_name(table, fprintf(stderr, "%s: ", dict_table_get_col_name(table,
...@@ -4011,9 +3975,7 @@ dict_index_print_low( ...@@ -4011,9 +3975,7 @@ dict_index_print_low(
ib_longlong n_vals; ib_longlong n_vals;
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (index->n_user_defined_cols > 0) { if (index->n_user_defined_cols > 0) {
n_vals = index->stat_n_diff_key_vals[ n_vals = index->stat_n_diff_key_vals[
...@@ -4061,9 +4023,8 @@ dict_field_print_low( ...@@ -4061,9 +4023,8 @@ dict_field_print_low(
/*=================*/ /*=================*/
dict_field_t* field) /* in: field */ dict_field_t* field) /* in: field */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
fprintf(stderr, " %s", field->name); fprintf(stderr, " %s", field->name);
if (field->prefix_len != 0) { if (field->prefix_len != 0) {
......
...@@ -67,9 +67,7 @@ dict_get_first_table_name_in_db( ...@@ -67,9 +67,7 @@ dict_get_first_table_name_in_db(
ulint len; ulint len;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
heap = mem_heap_create(1000); heap = mem_heap_create(1000);
...@@ -353,9 +351,7 @@ dict_load_columns( ...@@ -353,9 +351,7 @@ dict_load_columns(
ulint i; ulint i;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
mtr_start(&mtr); mtr_start(&mtr);
...@@ -478,11 +474,7 @@ dict_load_fields( ...@@ -478,11 +474,7 @@ dict_load_fields(
ulint i; ulint i;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
UT_NOT_USED(table);
mtr_start(&mtr); mtr_start(&mtr);
...@@ -586,9 +578,7 @@ dict_load_indexes( ...@@ -586,9 +578,7 @@ dict_load_indexes(
dulint id; dulint id;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if ((ut_dulint_get_high(table->id) == 0) if ((ut_dulint_get_high(table->id) == 0)
&& (ut_dulint_get_low(table->id) < DICT_HDR_FIRST_ID)) { && (ut_dulint_get_low(table->id) < DICT_HDR_FIRST_ID)) {
...@@ -754,9 +744,7 @@ dict_load_table( ...@@ -754,9 +744,7 @@ dict_load_table(
ulint err; ulint err;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
heap = mem_heap_create(1000); heap = mem_heap_create(1000);
...@@ -920,9 +908,7 @@ dict_load_table_on_id( ...@@ -920,9 +908,7 @@ dict_load_table_on_id(
dict_table_t* table; dict_table_t* table;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
/* NOTE that the operation of this function is protected by /* NOTE that the operation of this function is protected by
the dictionary mutex, and therefore no deadlocks can occur the dictionary mutex, and therefore no deadlocks can occur
...@@ -1003,9 +989,7 @@ dict_load_sys_table( ...@@ -1003,9 +989,7 @@ dict_load_sys_table(
{ {
mem_heap_t* heap; mem_heap_t* heap;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
heap = mem_heap_create(1000); heap = mem_heap_create(1000);
...@@ -1035,9 +1019,7 @@ dict_load_foreign_cols( ...@@ -1035,9 +1019,7 @@ dict_load_foreign_cols(
ulint i; ulint i;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
foreign->foreign_col_names = mem_heap_alloc( foreign->foreign_col_names = mem_heap_alloc(
foreign->heap, foreign->n_fields * sizeof(void*)); foreign->heap, foreign->n_fields * sizeof(void*));
...@@ -1113,9 +1095,7 @@ dict_load_foreign( ...@@ -1113,9 +1095,7 @@ dict_load_foreign(
ulint n_fields_and_type; ulint n_fields_and_type;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
heap2 = mem_heap_create(1000); heap2 = mem_heap_create(1000);
...@@ -1243,9 +1223,7 @@ dict_load_foreigns( ...@@ -1243,9 +1223,7 @@ dict_load_foreigns(
ulint err; ulint err;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
sys_foreign = dict_table_get_low("SYS_FOREIGN"); sys_foreign = dict_table_get_low("SYS_FOREIGN");
......
...@@ -409,9 +409,7 @@ fil_space_is_flushed( ...@@ -409,9 +409,7 @@ fil_space_is_flushed(
{ {
fil_node_t* node; fil_node_t* node;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(fil_system->mutex))); ut_ad(mutex_own(&(fil_system->mutex)));
#endif /* UNIV_SYNC_DEBUG */
node = UT_LIST_GET_FIRST(space->chain); node = UT_LIST_GET_FIRST(space->chain);
...@@ -514,9 +512,7 @@ fil_node_open_file( ...@@ -514,9 +512,7 @@ fil_node_open_file(
ulint space_id; ulint space_id;
#endif /* !UNIV_HOTBACKUP */ #endif /* !UNIV_HOTBACKUP */
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(system->mutex))); ut_ad(mutex_own(&(system->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(node->n_pending == 0); ut_a(node->n_pending == 0);
ut_a(node->open == FALSE); ut_a(node->open == FALSE);
...@@ -660,9 +656,7 @@ fil_node_close_file( ...@@ -660,9 +656,7 @@ fil_node_close_file(
ibool ret; ibool ret;
ut_ad(node && system); ut_ad(node && system);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(system->mutex))); ut_ad(mutex_own(&(system->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(node->open); ut_a(node->open);
ut_a(node->n_pending == 0); ut_a(node->n_pending == 0);
ut_a(node->n_pending_flushes == 0); ut_a(node->n_pending_flushes == 0);
...@@ -705,9 +699,8 @@ fil_try_to_close_file_in_LRU( ...@@ -705,9 +699,8 @@ fil_try_to_close_file_in_LRU(
fil_system_t* system = fil_system; fil_system_t* system = fil_system;
fil_node_t* node; fil_node_t* node;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(system->mutex))); ut_ad(mutex_own(&(system->mutex)));
#endif /* UNIV_SYNC_DEBUG */
node = UT_LIST_GET_LAST(system->LRU); node = UT_LIST_GET_LAST(system->LRU);
if (print_info) { if (print_info) {
...@@ -765,9 +758,7 @@ fil_mutex_enter_and_prepare_for_io( ...@@ -765,9 +758,7 @@ fil_mutex_enter_and_prepare_for_io(
ulint count = 0; ulint count = 0;
ulint count2 = 0; ulint count2 = 0;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&(system->mutex))); ut_ad(!mutex_own(&(system->mutex)));
#endif /* UNIV_SYNC_DEBUG */
retry: retry:
mutex_enter(&(system->mutex)); mutex_enter(&(system->mutex));
...@@ -881,9 +872,7 @@ fil_node_free( ...@@ -881,9 +872,7 @@ fil_node_free(
fil_space_t* space) /* in: space where the file node is chained */ fil_space_t* space) /* in: space where the file node is chained */
{ {
ut_ad(node && system && space); ut_ad(node && system && space);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(system->mutex))); ut_ad(mutex_own(&(system->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(node->magic_n == FIL_NODE_MAGIC_N); ut_a(node->magic_n == FIL_NODE_MAGIC_N);
ut_a(node->n_pending == 0); ut_a(node->n_pending == 0);
...@@ -3870,9 +3859,7 @@ fil_node_prepare_for_io( ...@@ -3870,9 +3859,7 @@ fil_node_prepare_for_io(
fil_space_t* space) /* in: space */ fil_space_t* space) /* in: space */
{ {
ut_ad(node && system && space); ut_ad(node && system && space);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(system->mutex))); ut_ad(mutex_own(&(system->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (system->n_open > system->max_n_open + 5) { if (system->n_open > system->max_n_open + 5) {
ut_print_timestamp(stderr); ut_print_timestamp(stderr);
...@@ -3917,9 +3904,7 @@ fil_node_complete_io( ...@@ -3917,9 +3904,7 @@ fil_node_complete_io(
{ {
ut_ad(node); ut_ad(node);
ut_ad(system); ut_ad(system);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(system->mutex))); ut_ad(mutex_own(&(system->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(node->n_pending > 0); ut_a(node->n_pending > 0);
......
...@@ -2045,11 +2045,9 @@ fseg_create_general( ...@@ -2045,11 +2045,9 @@ fseg_create_general(
mtr); mtr);
} }
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex) ut_ad(!mutex_own(&kernel_mutex)
|| mtr_memo_contains(mtr, fil_space_get_latch(space), || mtr_memo_contains(mtr, fil_space_get_latch(space),
MTR_MEMO_X_LOCK)); MTR_MEMO_X_LOCK));
#endif /* UNIV_SYNC_DEBUG */
latch = fil_space_get_latch(space); latch = fil_space_get_latch(space);
mtr_x_lock(latch, mtr); mtr_x_lock(latch, mtr);
...@@ -2205,11 +2203,10 @@ fseg_n_reserved_pages( ...@@ -2205,11 +2203,10 @@ fseg_n_reserved_pages(
space = buf_frame_get_space_id(header); space = buf_frame_get_space_id(header);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex) ut_ad(!mutex_own(&kernel_mutex)
|| mtr_memo_contains(mtr, fil_space_get_latch(space), || mtr_memo_contains(mtr, fil_space_get_latch(space),
MTR_MEMO_X_LOCK)); MTR_MEMO_X_LOCK));
#endif /* UNIV_SYNC_DEBUG */
mtr_x_lock(fil_space_get_latch(space), mtr); mtr_x_lock(fil_space_get_latch(space), mtr);
inode = fseg_inode_get(header, mtr); inode = fseg_inode_get(header, mtr);
...@@ -2601,11 +2598,9 @@ fseg_alloc_free_page_general( ...@@ -2601,11 +2598,9 @@ fseg_alloc_free_page_general(
space = buf_frame_get_space_id(seg_header); space = buf_frame_get_space_id(seg_header);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex) ut_ad(!mutex_own(&kernel_mutex)
|| mtr_memo_contains(mtr, fil_space_get_latch(space), || mtr_memo_contains(mtr, fil_space_get_latch(space),
MTR_MEMO_X_LOCK)); MTR_MEMO_X_LOCK));
#endif /* UNIV_SYNC_DEBUG */
latch = fil_space_get_latch(space); latch = fil_space_get_latch(space);
mtr_x_lock(latch, mtr); mtr_x_lock(latch, mtr);
...@@ -2751,11 +2746,9 @@ fsp_reserve_free_extents( ...@@ -2751,11 +2746,9 @@ fsp_reserve_free_extents(
ulint n_pages_added; ulint n_pages_added;
ut_ad(mtr); ut_ad(mtr);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex) ut_ad(!mutex_own(&kernel_mutex)
|| mtr_memo_contains(mtr, fil_space_get_latch(space), || mtr_memo_contains(mtr, fil_space_get_latch(space),
MTR_MEMO_X_LOCK)); MTR_MEMO_X_LOCK));
#endif /* UNIV_SYNC_DEBUG */
*n_reserved = n_ext; *n_reserved = n_ext;
latch = fil_space_get_latch(space); latch = fil_space_get_latch(space);
...@@ -2853,9 +2846,8 @@ fsp_get_available_space_in_free_extents( ...@@ -2853,9 +2846,8 @@ fsp_get_available_space_in_free_extents(
rw_lock_t* latch; rw_lock_t* latch;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex)); ut_ad(!mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
mtr_start(&mtr); mtr_start(&mtr);
latch = fil_space_get_latch(space); latch = fil_space_get_latch(space);
...@@ -3113,11 +3105,10 @@ fseg_free_page( ...@@ -3113,11 +3105,10 @@ fseg_free_page(
{ {
fseg_inode_t* seg_inode; fseg_inode_t* seg_inode;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex) ut_ad(!mutex_own(&kernel_mutex)
|| mtr_memo_contains(mtr, fil_space_get_latch(space), || mtr_memo_contains(mtr, fil_space_get_latch(space),
MTR_MEMO_X_LOCK)); MTR_MEMO_X_LOCK));
#endif /* UNIV_SYNC_DEBUG */
mtr_x_lock(fil_space_get_latch(space), mtr); mtr_x_lock(fil_space_get_latch(space), mtr);
seg_inode = fseg_inode_get(seg_header, mtr); seg_inode = fseg_inode_get(seg_header, mtr);
...@@ -3222,11 +3213,10 @@ fseg_free_step( ...@@ -3222,11 +3213,10 @@ fseg_free_step(
space = buf_frame_get_space_id(header); space = buf_frame_get_space_id(header);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex) ut_ad(!mutex_own(&kernel_mutex)
|| mtr_memo_contains(mtr, fil_space_get_latch(space), || mtr_memo_contains(mtr, fil_space_get_latch(space),
MTR_MEMO_X_LOCK)); MTR_MEMO_X_LOCK));
#endif /* UNIV_SYNC_DEBUG */
mtr_x_lock(fil_space_get_latch(space), mtr); mtr_x_lock(fil_space_get_latch(space), mtr);
descr = xdes_get_descriptor(space, buf_frame_get_page_no(header), mtr); descr = xdes_get_descriptor(space, buf_frame_get_page_no(header), mtr);
...@@ -3297,11 +3287,10 @@ fseg_free_step_not_header( ...@@ -3297,11 +3287,10 @@ fseg_free_step_not_header(
space = buf_frame_get_space_id(header); space = buf_frame_get_space_id(header);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex) ut_ad(!mutex_own(&kernel_mutex)
|| mtr_memo_contains(mtr, fil_space_get_latch(space), || mtr_memo_contains(mtr, fil_space_get_latch(space),
MTR_MEMO_X_LOCK)); MTR_MEMO_X_LOCK));
#endif /* UNIV_SYNC_DEBUG */
mtr_x_lock(fil_space_get_latch(space), mtr); mtr_x_lock(fil_space_get_latch(space), mtr);
inode = fseg_inode_get(header, mtr); inode = fseg_inode_get(header, mtr);
......
...@@ -96,9 +96,8 @@ ha_insert_for_fold( ...@@ -96,9 +96,8 @@ ha_insert_for_fold(
ulint hash; ulint hash;
ut_ad(table && data); ut_ad(table && data);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold))); ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold)));
#endif /* UNIV_SYNC_DEBUG */
hash = hash_calc_hash(fold, table); hash = hash_calc_hash(fold, table);
cell = hash_get_nth_cell(table, hash); cell = hash_get_nth_cell(table, hash);
...@@ -194,9 +193,8 @@ ha_delete( ...@@ -194,9 +193,8 @@ ha_delete(
{ {
ha_node_t* node; ha_node_t* node;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold))); ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold)));
#endif /* UNIV_SYNC_DEBUG */
node = ha_search_with_data(table, fold, data); node = ha_search_with_data(table, fold, data);
ut_a(node); ut_a(node);
...@@ -218,9 +216,7 @@ ha_search_and_update_if_found( ...@@ -218,9 +216,7 @@ ha_search_and_update_if_found(
{ {
ha_node_t* node; ha_node_t* node;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold))); ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold)));
#endif /* UNIV_SYNC_DEBUG */
node = ha_search_with_data(table, fold, data); node = ha_search_with_data(table, fold, data);
...@@ -248,9 +244,8 @@ ha_remove_all_nodes_to_page( ...@@ -248,9 +244,8 @@ ha_remove_all_nodes_to_page(
{ {
ha_node_t* node; ha_node_t* node;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold))); ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold)));
#endif /* UNIV_SYNC_DEBUG */
node = ha_chain_get_first(table, fold); node = ha_chain_get_first(table, fold);
while (node) { while (node) {
......
...@@ -417,9 +417,7 @@ ibuf_data_sizes_update( ...@@ -417,9 +417,7 @@ ibuf_data_sizes_update(
{ {
ulint old_size; ulint old_size;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&ibuf_mutex)); ut_ad(mutex_own(&ibuf_mutex));
#endif /* UNIV_SYNC_DEBUG */
old_size = data->size; old_size = data->size;
...@@ -1576,9 +1574,7 @@ ibuf_data_enough_free_for_insert( ...@@ -1576,9 +1574,7 @@ ibuf_data_enough_free_for_insert(
/* out: TRUE if enough free pages in list */ /* out: TRUE if enough free pages in list */
ibuf_data_t* data) /* in: ibuf data for the space */ ibuf_data_t* data) /* in: ibuf data for the space */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&ibuf_mutex)); ut_ad(mutex_own(&ibuf_mutex));
#endif /* UNIV_SYNC_DEBUG */
/* We want a big margin of free pages, because a B-tree can sometimes /* We want a big margin of free pages, because a B-tree can sometimes
grow in size also if records are deleted from it, as the node pointers grow in size also if records are deleted from it, as the node pointers
...@@ -1604,16 +1600,9 @@ ibuf_data_too_much_free( ...@@ -1604,16 +1600,9 @@ ibuf_data_too_much_free(
/* out: TRUE if enough free pages in list */ /* out: TRUE if enough free pages in list */
ibuf_data_t* data) /* in: ibuf data for the space */ ibuf_data_t* data) /* in: ibuf data for the space */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&ibuf_mutex)); ut_ad(mutex_own(&ibuf_mutex));
#endif /* UNIV_SYNC_DEBUG */
if (data->free_list_len >= 3 + data->size / 2 + 3 * data->height) {
return(TRUE); return(data->free_list_len >= 3 + data->size / 2 + 3 * data->height);
}
return(FALSE);
} }
/************************************************************************* /*************************************************************************
...@@ -3451,9 +3440,7 @@ ibuf_validate_low(void) ...@@ -3451,9 +3440,7 @@ ibuf_validate_low(void)
ibuf_data_t* data; ibuf_data_t* data;
ulint sum_sizes; ulint sum_sizes;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&ibuf_mutex)); ut_ad(mutex_own(&ibuf_mutex));
#endif /* UNIV_SYNC_DEBUG */
sum_sizes = 0; sum_sizes = 0;
......
...@@ -128,9 +128,7 @@ buf_pool_clock_tic(void) ...@@ -128,9 +128,7 @@ buf_pool_clock_tic(void)
/*====================*/ /*====================*/
/* out: new clock value */ /* out: new clock value */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
buf_pool->ulint_clock++; buf_pool->ulint_clock++;
...@@ -456,7 +454,7 @@ buf_frame_modify_clock_inc( ...@@ -456,7 +454,7 @@ buf_frame_modify_clock_inc(
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
ut_ad((mutex_own(&(buf_pool->mutex)) && (block->buf_fix_count == 0)) ut_ad((mutex_own(&(buf_pool->mutex)) && (block->buf_fix_count == 0))
|| rw_lock_own(&(block->lock), RW_LOCK_EXCLUSIVE)); || rw_lock_own(&(block->lock), RW_LOCK_EXCLUSIVE));
#endif /*UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
UT_DULINT_INC(block->modify_clock); UT_DULINT_INC(block->modify_clock);
...@@ -513,14 +511,12 @@ buf_block_buf_fix_inc_debug( ...@@ -513,14 +511,12 @@ buf_block_buf_fix_inc_debug(
const char* file __attribute__ ((unused)), /* in: file name */ const char* file __attribute__ ((unused)), /* in: file name */
ulint line __attribute__ ((unused))) /* in: line */ ulint line __attribute__ ((unused))) /* in: line */
{ {
#ifdef UNIV_SYNC_DEBUG
ibool ret; ibool ret;
ret = rw_lock_s_lock_func_nowait(&(block->debug_latch), file, line); ret = rw_lock_s_lock_func_nowait(&(block->debug_latch), file, line);
ut_ad(ret == TRUE); ut_ad(ret == TRUE);
ut_ad(mutex_own(&block->mutex)); ut_ad(mutex_own(&block->mutex));
#endif
block->buf_fix_count++; block->buf_fix_count++;
} }
#else /* UNIV_SYNC_DEBUG */ #else /* UNIV_SYNC_DEBUG */
...@@ -532,9 +528,8 @@ buf_block_buf_fix_inc( ...@@ -532,9 +528,8 @@ buf_block_buf_fix_inc(
/*==================*/ /*==================*/
buf_block_t* block) /* in: block to bufferfix */ buf_block_t* block) /* in: block to bufferfix */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&block->mutex)); ut_ad(mutex_own(&block->mutex));
#endif
block->buf_fix_count++; block->buf_fix_count++;
} }
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
...@@ -552,9 +547,7 @@ buf_page_hash_get( ...@@ -552,9 +547,7 @@ buf_page_hash_get(
ulint fold; ulint fold;
ut_ad(buf_pool); ut_ad(buf_pool);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex))); ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
/* Look for the page in the hash table */ /* Look for the page in the hash table */
......
...@@ -42,8 +42,8 @@ buf_flush_note_modification( ...@@ -42,8 +42,8 @@ buf_flush_note_modification(
ut_ad(block->buf_fix_count > 0); ut_ad(block->buf_fix_count > 0);
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
ut_ad(rw_lock_own(&(block->lock), RW_LOCK_EX)); ut_ad(rw_lock_own(&(block->lock), RW_LOCK_EX));
ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
ut_ad(mutex_own(&(buf_pool->mutex)));
ut_ad(ut_dulint_cmp(mtr->start_lsn, ut_dulint_zero) != 0); ut_ad(ut_dulint_cmp(mtr->start_lsn, ut_dulint_zero) != 0);
ut_ad(mtr->modifications); ut_ad(mtr->modifications);
......
...@@ -551,9 +551,7 @@ dict_table_check_if_in_cache_low( ...@@ -551,9 +551,7 @@ dict_table_check_if_in_cache_low(
ulint table_fold; ulint table_fold;
ut_ad(table_name); ut_ad(table_name);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
/* Look for the table name in the hash table */ /* Look for the table name in the hash table */
table_fold = ut_fold_string(table_name); table_fold = ut_fold_string(table_name);
...@@ -576,9 +574,7 @@ dict_table_get_low( ...@@ -576,9 +574,7 @@ dict_table_get_low(
dict_table_t* table; dict_table_t* table;
ut_ad(table_name); ut_ad(table_name);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
table = dict_table_check_if_in_cache_low(table_name); table = dict_table_check_if_in_cache_low(table_name);
...@@ -601,9 +597,7 @@ dict_table_get_on_id_low( ...@@ -601,9 +597,7 @@ dict_table_get_on_id_low(
dict_table_t* table; dict_table_t* table;
ulint fold; ulint fold;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
/* Look for the table name in the hash table */ /* Look for the table name in the hash table */
fold = ut_fold_dulint(table_id); fold = ut_fold_dulint(table_id);
......
...@@ -81,9 +81,7 @@ ha_search( ...@@ -81,9 +81,7 @@ ha_search(
{ {
ha_node_t* node; ha_node_t* node;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold))); ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold)));
#endif /* UNIV_SYNC_DEBUG */
node = ha_chain_get_first(table, fold); node = ha_chain_get_first(table, fold);
...@@ -113,9 +111,7 @@ ha_search_and_get_data( ...@@ -113,9 +111,7 @@ ha_search_and_get_data(
{ {
ha_node_t* node; ha_node_t* node;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold))); ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold)));
#endif /* UNIV_SYNC_DEBUG */
node = ha_chain_get_first(table, fold); node = ha_chain_get_first(table, fold);
...@@ -145,9 +141,7 @@ ha_search_with_data( ...@@ -145,9 +141,7 @@ ha_search_with_data(
{ {
ha_node_t* node; ha_node_t* node;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold))); ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold)));
#endif /* UNIV_SYNC_DEBUG */
node = ha_chain_get_first(table, fold); node = ha_chain_get_first(table, fold);
...@@ -177,9 +171,7 @@ ha_search_and_delete_if_found( ...@@ -177,9 +171,7 @@ ha_search_and_delete_if_found(
{ {
ha_node_t* node; ha_node_t* node;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold))); ut_ad(!table->mutexes || mutex_own(hash_get_mutex(table, fold)));
#endif /* UNIV_SYNC_DEBUG */
node = ha_search_with_data(table, fold, data); node = ha_search_with_data(table, fold, data);
......
...@@ -65,9 +65,7 @@ lock_clust_rec_some_has_impl( ...@@ -65,9 +65,7 @@ lock_clust_rec_some_has_impl(
{ {
dulint trx_id; dulint trx_id;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(index->type & DICT_CLUSTERED); ut_ad(index->type & DICT_CLUSTERED);
ut_ad(page_rec_is_user_rec(rec)); ut_ad(page_rec_is_user_rec(rec));
......
...@@ -255,9 +255,7 @@ log_block_init( ...@@ -255,9 +255,7 @@ log_block_init(
{ {
ulint no; ulint no;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
no = log_block_convert_lsn_to_no(lsn); no = log_block_convert_lsn_to_no(lsn);
...@@ -279,9 +277,7 @@ log_block_init_in_old_format( ...@@ -279,9 +277,7 @@ log_block_init_in_old_format(
{ {
ulint no; ulint no;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
no = log_block_convert_lsn_to_no(lsn); no = log_block_convert_lsn_to_no(lsn);
......
...@@ -133,9 +133,8 @@ rw_lock_s_lock_low( ...@@ -133,9 +133,8 @@ rw_lock_s_lock_low(
const char* file_name, /* in: file name where lock requested */ const char* file_name, /* in: file name where lock requested */
ulint line) /* in: line where requested */ ulint line) /* in: line where requested */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(rw_lock_get_mutex(lock))); ut_ad(mutex_own(rw_lock_get_mutex(lock)));
#endif /* UNIV_SYNC_DEBUG */
/* Check if the writer field is free */ /* Check if the writer field is free */
if (UNIV_LIKELY(lock->writer == RW_LOCK_NOT_LOCKED)) { if (UNIV_LIKELY(lock->writer == RW_LOCK_NOT_LOCKED)) {
......
...@@ -170,7 +170,16 @@ Checks that the mutex has been initialized. */ ...@@ -170,7 +170,16 @@ Checks that the mutex has been initialized. */
ibool ibool
mutex_validate( mutex_validate(
/*===========*/ /*===========*/
mutex_t* mutex); const mutex_t* mutex);
/**********************************************************************
Checks that the current thread owns the mutex. Works only
in the debug version. */
ibool
mutex_own(
/*======*/
/* out: TRUE if owns */
const mutex_t* mutex); /* in: mutex */
#endif /* UNIV_DEBUG */ #endif /* UNIV_DEBUG */
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
/********************************************************************** /**********************************************************************
...@@ -215,15 +224,6 @@ sync_thread_levels_empty_gen( ...@@ -215,15 +224,6 @@ sync_thread_levels_empty_gen(
also purge_is_running mutex is also purge_is_running mutex is
allowed */ allowed */
/********************************************************************** /**********************************************************************
Checks that the current thread owns the mutex. Works only
in the debug version. */
ibool
mutex_own(
/*======*/
/* out: TRUE if owns */
mutex_t* mutex); /* in: mutex */
/**********************************************************************
Gets the debug information for a reserved mutex. */ Gets the debug information for a reserved mutex. */
void void
...@@ -248,7 +248,7 @@ UNIV_INLINE ...@@ -248,7 +248,7 @@ UNIV_INLINE
ulint ulint
mutex_get_lock_word( mutex_get_lock_word(
/*================*/ /*================*/
mutex_t* mutex); /* in: mutex */ const mutex_t* mutex); /* in: mutex */
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
/********************************************************************** /**********************************************************************
NOT to be used outside this module except in debugging! Gets the waiters NOT to be used outside this module except in debugging! Gets the waiters
...@@ -258,7 +258,7 @@ ulint ...@@ -258,7 +258,7 @@ ulint
mutex_get_waiters( mutex_get_waiters(
/*==============*/ /*==============*/
/* out: value to set */ /* out: value to set */
mutex_t* mutex); /* in: mutex */ const mutex_t* mutex); /* in: mutex */
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
/* /*
...@@ -479,13 +479,13 @@ struct mutex_struct { ...@@ -479,13 +479,13 @@ struct mutex_struct {
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
const char* file_name; /* File where the mutex was locked */ const char* file_name; /* File where the mutex was locked */
ulint line; /* Line where the mutex was locked */ ulint line; /* Line where the mutex was locked */
os_thread_id_t thread_id; /* Debug version: The thread id of the
thread which locked the mutex. */
ulint level; /* Level in the global latching order */ ulint level; /* Level in the global latching order */
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
const char* cfile_name;/* File name where mutex created */ const char* cfile_name;/* File name where mutex created */
ulint cline; /* Line where created */ ulint cline; /* Line where created */
#ifdef UNIV_DEBUG #ifdef UNIV_DEBUG
os_thread_id_t thread_id; /* The thread id of the thread
which locked the mutex. */
ulint magic_n; ulint magic_n;
# define MUTEX_MAGIC_N (ulint)979585 # define MUTEX_MAGIC_N (ulint)979585
#endif /* UNIV_DEBUG */ #endif /* UNIV_DEBUG */
......
...@@ -168,9 +168,9 @@ UNIV_INLINE ...@@ -168,9 +168,9 @@ UNIV_INLINE
ulint ulint
mutex_get_lock_word( mutex_get_lock_word(
/*================*/ /*================*/
mutex_t* mutex) /* in: mutex */ const mutex_t* mutex) /* in: mutex */
{ {
volatile ulint* ptr; /* declared volatile to ensure that const volatile ulint* ptr; /* declared volatile to ensure that
lock_word is loaded from memory */ lock_word is loaded from memory */
ut_ad(mutex); ut_ad(mutex);
...@@ -186,9 +186,9 @@ ulint ...@@ -186,9 +186,9 @@ ulint
mutex_get_waiters( mutex_get_waiters(
/*==============*/ /*==============*/
/* out: value to set */ /* out: value to set */
mutex_t* mutex) /* in: mutex */ const mutex_t* mutex) /* in: mutex */
{ {
volatile ulint* ptr; /* declared volatile to ensure that const volatile ulint* ptr; /* declared volatile to ensure that
the value is read from memory */ the value is read from memory */
ut_ad(mutex); ut_ad(mutex);
...@@ -206,11 +206,11 @@ mutex_exit( ...@@ -206,11 +206,11 @@ mutex_exit(
/*=======*/ /*=======*/
mutex_t* mutex) /* in: pointer to mutex */ mutex_t* mutex) /* in: pointer to mutex */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(mutex)); ut_ad(mutex_own(mutex));
mutex->thread_id = ULINT_UNDEFINED; ut_d(mutex->thread_id = ULINT_UNDEFINED);
#ifdef UNIV_SYNC_DEBUG
sync_thread_reset_level(mutex); sync_thread_reset_level(mutex);
#endif #endif
mutex_reset_lock_word(mutex); mutex_reset_lock_word(mutex);
...@@ -259,6 +259,7 @@ mutex_enter_func( ...@@ -259,6 +259,7 @@ mutex_enter_func(
#endif /* UNIV_DEBUG && !UNIV_HOTBACKUP */ #endif /* UNIV_DEBUG && !UNIV_HOTBACKUP */
if (!mutex_test_and_set(mutex)) { if (!mutex_test_and_set(mutex)) {
ut_d(mutex->thread_id = os_thread_get_curr_id());
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
mutex_set_debug_info(mutex, file_name, line); mutex_set_debug_info(mutex, file_name, line);
#endif #endif
......
...@@ -62,9 +62,7 @@ trx_sys_get_nth_rseg( ...@@ -62,9 +62,7 @@ trx_sys_get_nth_rseg(
trx_sys_t* sys, /* in: trx system */ trx_sys_t* sys, /* in: trx system */
ulint n) /* in: index of slot */ ulint n) /* in: index of slot */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(n < TRX_SYS_N_RSEGS); ut_ad(n < TRX_SYS_N_RSEGS);
return(sys->rseg_array[n]); return(sys->rseg_array[n]);
...@@ -121,9 +119,7 @@ trx_sysf_rseg_get_space( ...@@ -121,9 +119,7 @@ trx_sysf_rseg_get_space(
ulint i, /* in: slot index == rseg id */ ulint i, /* in: slot index == rseg id */
mtr_t* mtr) /* in: mtr */ mtr_t* mtr) /* in: mtr */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(sys_header); ut_ad(sys_header);
ut_ad(i < TRX_SYS_N_RSEGS); ut_ad(i < TRX_SYS_N_RSEGS);
...@@ -146,9 +142,7 @@ trx_sysf_rseg_get_page_no( ...@@ -146,9 +142,7 @@ trx_sysf_rseg_get_page_no(
mtr_t* mtr) /* in: mtr */ mtr_t* mtr) /* in: mtr */
{ {
ut_ad(sys_header); ut_ad(sys_header);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(i < TRX_SYS_N_RSEGS); ut_ad(i < TRX_SYS_N_RSEGS);
return(mtr_read_ulint(sys_header + TRX_SYS_RSEGS return(mtr_read_ulint(sys_header + TRX_SYS_RSEGS
...@@ -168,9 +162,7 @@ trx_sysf_rseg_set_space( ...@@ -168,9 +162,7 @@ trx_sysf_rseg_set_space(
ulint space, /* in: space id */ ulint space, /* in: space id */
mtr_t* mtr) /* in: mtr */ mtr_t* mtr) /* in: mtr */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(sys_header); ut_ad(sys_header);
ut_ad(i < TRX_SYS_N_RSEGS); ut_ad(i < TRX_SYS_N_RSEGS);
...@@ -194,9 +186,7 @@ trx_sysf_rseg_set_page_no( ...@@ -194,9 +186,7 @@ trx_sysf_rseg_set_page_no(
slot is reset to unused */ slot is reset to unused */
mtr_t* mtr) /* in: mtr */ mtr_t* mtr) /* in: mtr */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(sys_header); ut_ad(sys_header);
ut_ad(i < TRX_SYS_N_RSEGS); ut_ad(i < TRX_SYS_N_RSEGS);
...@@ -250,9 +240,7 @@ trx_get_on_id( ...@@ -250,9 +240,7 @@ trx_get_on_id(
{ {
trx_t* trx; trx_t* trx;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
trx = UT_LIST_GET_FIRST(trx_sys->trx_list); trx = UT_LIST_GET_FIRST(trx_sys->trx_list);
...@@ -282,9 +270,7 @@ trx_list_get_min_trx_id(void) ...@@ -282,9 +270,7 @@ trx_list_get_min_trx_id(void)
{ {
trx_t* trx; trx_t* trx;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
trx = UT_LIST_GET_LAST(trx_sys->trx_list); trx = UT_LIST_GET_LAST(trx_sys->trx_list);
...@@ -307,9 +293,7 @@ trx_is_active( ...@@ -307,9 +293,7 @@ trx_is_active(
{ {
trx_t* trx; trx_t* trx;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (ut_dulint_cmp(trx_id, trx_list_get_min_trx_id()) < 0) { if (ut_dulint_cmp(trx_id, trx_list_get_min_trx_id()) < 0) {
...@@ -346,9 +330,7 @@ trx_sys_get_new_trx_id(void) ...@@ -346,9 +330,7 @@ trx_sys_get_new_trx_id(void)
{ {
dulint id; dulint id;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
/* VERY important: after the database is started, max_trx_id value is /* VERY important: after the database is started, max_trx_id value is
divisible by TRX_SYS_TRX_ID_WRITE_MARGIN, and the following if divisible by TRX_SYS_TRX_ID_WRITE_MARGIN, and the following if
...@@ -378,9 +360,7 @@ trx_sys_get_new_trx_no(void) ...@@ -378,9 +360,7 @@ trx_sys_get_new_trx_no(void)
/*========================*/ /*========================*/
/* out: new, allocated trx number */ /* out: new, allocated trx number */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
return(trx_sys_get_new_trx_id()); return(trx_sys_get_new_trx_id());
} }
This diff is collapsed.
...@@ -165,9 +165,7 @@ log_buf_pool_get_oldest_modification(void) ...@@ -165,9 +165,7 @@ log_buf_pool_get_oldest_modification(void)
{ {
dulint lsn; dulint lsn;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
lsn = buf_pool_get_oldest_modification(); lsn = buf_pool_get_oldest_modification();
...@@ -269,9 +267,7 @@ log_write_low( ...@@ -269,9 +267,7 @@ log_write_low(
ulint data_len; ulint data_len;
byte* log_block; byte* log_block;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log->mutex))); ut_ad(mutex_own(&(log->mutex)));
#endif /* UNIV_SYNC_DEBUG */
part_loop: part_loop:
/* Calculate a part length */ /* Calculate a part length */
...@@ -340,9 +336,7 @@ log_close(void) ...@@ -340,9 +336,7 @@ log_close(void)
log_t* log = log_sys; log_t* log = log_sys;
ulint checkpoint_age; ulint checkpoint_age;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log->mutex))); ut_ad(mutex_own(&(log->mutex)));
#endif /* UNIV_SYNC_DEBUG */
lsn = log->lsn; lsn = log->lsn;
...@@ -464,9 +458,7 @@ log_group_get_capacity( ...@@ -464,9 +458,7 @@ log_group_get_capacity(
/* out: capacity in bytes */ /* out: capacity in bytes */
log_group_t* group) /* in: log group */ log_group_t* group) /* in: log group */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
return((group->file_size - LOG_FILE_HDR_SIZE) * group->n_files); return((group->file_size - LOG_FILE_HDR_SIZE) * group->n_files);
} }
...@@ -482,9 +474,7 @@ log_group_calc_size_offset( ...@@ -482,9 +474,7 @@ log_group_calc_size_offset(
ulint offset, /* in: real offset within the log group */ ulint offset, /* in: real offset within the log group */
log_group_t* group) /* in: log group */ log_group_t* group) /* in: log group */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
return(offset - LOG_FILE_HDR_SIZE * (1 + offset / group->file_size)); return(offset - LOG_FILE_HDR_SIZE * (1 + offset / group->file_size));
} }
...@@ -500,9 +490,7 @@ log_group_calc_real_offset( ...@@ -500,9 +490,7 @@ log_group_calc_real_offset(
ulint offset, /* in: size offset within the log group */ ulint offset, /* in: size offset within the log group */
log_group_t* group) /* in: log group */ log_group_t* group) /* in: log group */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
return(offset + LOG_FILE_HDR_SIZE return(offset + LOG_FILE_HDR_SIZE
* (1 + offset / (group->file_size - LOG_FILE_HDR_SIZE))); * (1 + offset / (group->file_size - LOG_FILE_HDR_SIZE)));
...@@ -525,9 +513,7 @@ log_group_calc_lsn_offset( ...@@ -525,9 +513,7 @@ log_group_calc_lsn_offset(
ib_longlong group_size; ib_longlong group_size;
ib_longlong offset; ib_longlong offset;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
/* If total log file size is > 2 GB we can easily get overflows /* If total log file size is > 2 GB we can easily get overflows
with 32-bit integers. Use 64-bit integers instead. */ with 32-bit integers. Use 64-bit integers instead. */
...@@ -642,9 +628,7 @@ log_calc_max_ages(void) ...@@ -642,9 +628,7 @@ log_calc_max_ages(void)
ulint archive_margin; ulint archive_margin;
ulint smallest_archive_margin; ulint smallest_archive_margin;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&(log_sys->mutex))); ut_ad(!mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
mutex_enter(&(log_sys->mutex)); mutex_enter(&(log_sys->mutex));
...@@ -942,9 +926,7 @@ log_flush_do_unlocks( ...@@ -942,9 +926,7 @@ log_flush_do_unlocks(
ulint code) /* in: any ORed combination of LOG_UNLOCK_FLUSH_LOCK ulint code) /* in: any ORed combination of LOG_UNLOCK_FLUSH_LOCK
and LOG_UNLOCK_NONE_FLUSHED_LOCK */ and LOG_UNLOCK_NONE_FLUSHED_LOCK */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
/* NOTE that we must own the log mutex when doing the setting of the /* NOTE that we must own the log mutex when doing the setting of the
events: this is because transactions will wait for these events to events: this is because transactions will wait for these events to
...@@ -976,9 +958,7 @@ log_group_check_flush_completion( ...@@ -976,9 +958,7 @@ log_group_check_flush_completion(
/* out: LOG_UNLOCK_NONE_FLUSHED_LOCK or 0 */ /* out: LOG_UNLOCK_NONE_FLUSHED_LOCK or 0 */
log_group_t* group) /* in: log group */ log_group_t* group) /* in: log group */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (!log_sys->one_flushed && group->n_pending_writes == 0) { if (!log_sys->one_flushed && group->n_pending_writes == 0) {
#ifdef UNIV_DEBUG #ifdef UNIV_DEBUG
...@@ -1015,9 +995,7 @@ log_sys_check_flush_completion(void) ...@@ -1015,9 +995,7 @@ log_sys_check_flush_completion(void)
ulint move_start; ulint move_start;
ulint move_end; ulint move_end;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (log_sys->n_pending_writes == 0) { if (log_sys->n_pending_writes == 0) {
...@@ -1129,10 +1107,8 @@ log_group_file_header_flush( ...@@ -1129,10 +1107,8 @@ log_group_file_header_flush(
{ {
byte* buf; byte* buf;
ulint dest_offset; ulint dest_offset;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(mutex_own(&(log_sys->mutex)));
ut_a(nth_file < group->n_files); ut_a(nth_file < group->n_files);
buf = *(group->file_header_bufs + nth_file); buf = *(group->file_header_bufs + nth_file);
...@@ -1203,9 +1179,7 @@ log_group_write_buf( ...@@ -1203,9 +1179,7 @@ log_group_write_buf(
ulint next_offset; ulint next_offset;
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(len % OS_FILE_LOG_BLOCK_SIZE == 0); ut_a(len % OS_FILE_LOG_BLOCK_SIZE == 0);
ut_a(ut_dulint_get_low(start_lsn) % OS_FILE_LOG_BLOCK_SIZE == 0); ut_a(ut_dulint_get_low(start_lsn) % OS_FILE_LOG_BLOCK_SIZE == 0);
...@@ -1626,9 +1600,7 @@ void ...@@ -1626,9 +1600,7 @@ void
log_complete_checkpoint(void) log_complete_checkpoint(void)
/*=========================*/ /*=========================*/
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(log_sys->n_pending_checkpoint_writes == 0); ut_ad(log_sys->n_pending_checkpoint_writes == 0);
log_sys->next_checkpoint_no log_sys->next_checkpoint_no
...@@ -1715,9 +1687,7 @@ log_group_checkpoint( ...@@ -1715,9 +1687,7 @@ log_group_checkpoint(
byte* buf; byte* buf;
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
#if LOG_CHECKPOINT_SIZE > OS_FILE_LOG_BLOCK_SIZE #if LOG_CHECKPOINT_SIZE > OS_FILE_LOG_BLOCK_SIZE
# error "LOG_CHECKPOINT_SIZE > OS_FILE_LOG_BLOCK_SIZE" # error "LOG_CHECKPOINT_SIZE > OS_FILE_LOG_BLOCK_SIZE"
#endif #endif
...@@ -1882,9 +1852,7 @@ log_group_read_checkpoint_info( ...@@ -1882,9 +1852,7 @@ log_group_read_checkpoint_info(
log_group_t* group, /* in: log group */ log_group_t* group, /* in: log group */
ulint field) /* in: LOG_CHECKPOINT_1 or LOG_CHECKPOINT_2 */ ulint field) /* in: LOG_CHECKPOINT_1 or LOG_CHECKPOINT_2 */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
log_sys->n_log_ios++; log_sys->n_log_ios++;
...@@ -1902,9 +1870,7 @@ log_groups_write_checkpoint_info(void) ...@@ -1902,9 +1870,7 @@ log_groups_write_checkpoint_info(void)
{ {
log_group_t* group; log_group_t* group;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
group = UT_LIST_GET_FIRST(log_sys->log_groups); group = UT_LIST_GET_FIRST(log_sys->log_groups);
...@@ -2162,9 +2128,7 @@ log_group_read_log_seg( ...@@ -2162,9 +2128,7 @@ log_group_read_log_seg(
ulint source_offset; ulint source_offset;
ibool sync; ibool sync;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
sync = FALSE; sync = FALSE;
...@@ -2237,9 +2201,7 @@ log_group_archive_file_header_write( ...@@ -2237,9 +2201,7 @@ log_group_archive_file_header_write(
byte* buf; byte* buf;
ulint dest_offset; ulint dest_offset;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(nth_file < group->n_files); ut_a(nth_file < group->n_files);
...@@ -2276,9 +2238,7 @@ log_group_archive_completed_header_write( ...@@ -2276,9 +2238,7 @@ log_group_archive_completed_header_write(
byte* buf; byte* buf;
ulint dest_offset; ulint dest_offset;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_a(nth_file < group->n_files); ut_a(nth_file < group->n_files);
buf = *(group->archive_file_header_bufs + nth_file); buf = *(group->archive_file_header_bufs + nth_file);
...@@ -2317,9 +2277,7 @@ log_group_archive( ...@@ -2317,9 +2277,7 @@ log_group_archive(
ulint n_files; ulint n_files;
ulint open_mode; ulint open_mode;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
start_lsn = log_sys->archived_lsn; start_lsn = log_sys->archived_lsn;
...@@ -2452,9 +2410,7 @@ log_archive_groups(void) ...@@ -2452,9 +2410,7 @@ log_archive_groups(void)
{ {
log_group_t* group; log_group_t* group;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
group = UT_LIST_GET_FIRST(log_sys->log_groups); group = UT_LIST_GET_FIRST(log_sys->log_groups);
...@@ -2477,9 +2433,7 @@ log_archive_write_complete_groups(void) ...@@ -2477,9 +2433,7 @@ log_archive_write_complete_groups(void)
dulint end_lsn; dulint end_lsn;
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
group = UT_LIST_GET_FIRST(log_sys->log_groups); group = UT_LIST_GET_FIRST(log_sys->log_groups);
...@@ -2546,9 +2500,7 @@ void ...@@ -2546,9 +2500,7 @@ void
log_archive_check_completion_low(void) log_archive_check_completion_low(void)
/*==================================*/ /*==================================*/
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (log_sys->n_pending_archive_ios == 0 if (log_sys->n_pending_archive_ios == 0
&& log_sys->archiving_phase == LOG_ARCHIVE_READ) { && log_sys->archiving_phase == LOG_ARCHIVE_READ) {
...@@ -2784,9 +2736,7 @@ log_archive_close_groups( ...@@ -2784,9 +2736,7 @@ log_archive_close_groups(
log_group_t* group; log_group_t* group;
ulint trunc_len; ulint trunc_len;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (log_sys->archiving_state == LOG_ARCH_OFF) { if (log_sys->archiving_state == LOG_ARCH_OFF) {
...@@ -3278,9 +3228,7 @@ log_check_log_recs( ...@@ -3278,9 +3228,7 @@ log_check_log_recs(
byte* buf1; byte* buf1;
byte* scan_buf; byte* scan_buf;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (len == 0) { if (len == 0) {
......
...@@ -171,9 +171,8 @@ void ...@@ -171,9 +171,8 @@ void
recv_sys_empty_hash(void) recv_sys_empty_hash(void)
/*=====================*/ /*=====================*/
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(recv_sys->mutex))); ut_ad(mutex_own(&(recv_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (recv_sys->n_addrs != 0) { if (recv_sys->n_addrs != 0) {
fprintf(stderr, fprintf(stderr,
"InnoDB: Error: %lu pages with log records" "InnoDB: Error: %lu pages with log records"
...@@ -1396,9 +1395,8 @@ loop: ...@@ -1396,9 +1395,8 @@ loop:
goto loop; goto loop;
} }
#ifdef UNIV_SYNC_DEBUG
ut_ad(!allow_ibuf == mutex_own(&log_sys->mutex)); ut_ad(!allow_ibuf == mutex_own(&log_sys->mutex));
#endif /* UNIV_SYNC_DEBUG */
if (!allow_ibuf) { if (!allow_ibuf) {
recv_no_ibuf_operations = TRUE; recv_no_ibuf_operations = TRUE;
} }
...@@ -1842,9 +1840,7 @@ recv_parse_log_recs( ...@@ -1842,9 +1840,7 @@ recv_parse_log_recs(
byte* body; byte* body;
ulint n_recs; ulint n_recs;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(!ut_dulint_is_zero(recv_sys->parse_start_lsn)); ut_ad(!ut_dulint_is_zero(recv_sys->parse_start_lsn));
loop: loop:
ptr = recv_sys->buf + recv_sys->recovered_offset; ptr = recv_sys->buf + recv_sys->recovered_offset;
...@@ -2894,9 +2890,8 @@ recv_reset_logs( ...@@ -2894,9 +2890,8 @@ recv_reset_logs(
{ {
log_group_t* group; log_group_t* group;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(log_sys->mutex))); ut_ad(mutex_own(&(log_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
log_sys->lsn = ut_dulint_align_up(lsn, OS_FILE_LOG_BLOCK_SIZE); log_sys->lsn = ut_dulint_align_up(lsn, OS_FILE_LOG_BLOCK_SIZE);
group = UT_LIST_GET_FIRST(log_sys->log_groups); group = UT_LIST_GET_FIRST(log_sys->log_groups);
......
...@@ -257,9 +257,7 @@ mem_pool_fill_free_list( ...@@ -257,9 +257,7 @@ mem_pool_fill_free_list(
mem_area_t* area2; mem_area_t* area2;
ibool ret; ibool ret;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(pool->mutex))); ut_ad(mutex_own(&(pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (i >= 63) { if (i >= 63) {
/* We come here when we have run out of space in the /* We come here when we have run out of space in the
......
...@@ -1859,10 +1859,9 @@ pars_sql( ...@@ -1859,10 +1859,9 @@ pars_sql(
heap = mem_heap_create(256); heap = mem_heap_create(256);
#ifdef UNIV_SYNC_DEBUG
/* Currently, the parser is not reentrant: */ /* Currently, the parser is not reentrant: */
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
pars_sym_tab_global = sym_tab_create(heap); pars_sym_tab_global = sym_tab_create(heap);
pars_sym_tab_global->string_len = strlen(str); pars_sym_tab_global->string_len = strlen(str);
......
...@@ -127,9 +127,7 @@ que_graph_publish( ...@@ -127,9 +127,7 @@ que_graph_publish(
que_t* graph, /* in: graph */ que_t* graph, /* in: graph */
sess_t* sess) /* in: session */ sess_t* sess) /* in: session */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
UT_LIST_ADD_LAST(graphs, sess->graphs, graph); UT_LIST_ADD_LAST(graphs, sess->graphs, graph);
} }
...@@ -238,9 +236,7 @@ que_thr_end_wait( ...@@ -238,9 +236,7 @@ que_thr_end_wait(
{ {
ibool was_active; ibool was_active;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(thr); ut_ad(thr);
ut_ad((thr->state == QUE_THR_LOCK_WAIT) ut_ad((thr->state == QUE_THR_LOCK_WAIT)
|| (thr->state == QUE_THR_PROCEDURE_WAIT) || (thr->state == QUE_THR_PROCEDURE_WAIT)
...@@ -280,9 +276,7 @@ que_thr_end_wait_no_next_thr( ...@@ -280,9 +276,7 @@ que_thr_end_wait_no_next_thr(
ut_a(thr->state == QUE_THR_LOCK_WAIT); /* In MySQL this is the ut_a(thr->state == QUE_THR_LOCK_WAIT); /* In MySQL this is the
only possible state here */ only possible state here */
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(thr); ut_ad(thr);
ut_ad((thr->state == QUE_THR_LOCK_WAIT) ut_ad((thr->state == QUE_THR_LOCK_WAIT)
|| (thr->state == QUE_THR_PROCEDURE_WAIT) || (thr->state == QUE_THR_PROCEDURE_WAIT)
...@@ -419,9 +413,7 @@ que_fork_error_handle( ...@@ -419,9 +413,7 @@ que_fork_error_handle(
{ {
que_thr_t* thr; que_thr_t* thr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(trx->sess->state == SESS_ERROR); ut_ad(trx->sess->state == SESS_ERROR);
ut_ad(UT_LIST_GET_LEN(trx->reply_signals) == 0); ut_ad(UT_LIST_GET_LEN(trx->reply_signals) == 0);
ut_ad(UT_LIST_GET_LEN(trx->wait_thrs) == 0); ut_ad(UT_LIST_GET_LEN(trx->wait_thrs) == 0);
...@@ -698,9 +690,7 @@ que_graph_try_free( ...@@ -698,9 +690,7 @@ que_graph_try_free(
{ {
sess_t* sess; sess_t* sess;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
sess = (graph->trx)->sess; sess = (graph->trx)->sess;
...@@ -931,9 +921,7 @@ que_thr_stop( ...@@ -931,9 +921,7 @@ que_thr_stop(
que_t* graph; que_t* graph;
ibool ret = TRUE; ibool ret = TRUE;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
graph = thr->graph; graph = thr->graph;
trx = graph->trx; trx = graph->trx;
...@@ -1309,10 +1297,7 @@ que_run_threads_low( ...@@ -1309,10 +1297,7 @@ que_run_threads_low(
ut_ad(thr->state == QUE_THR_RUNNING); ut_ad(thr->state == QUE_THR_RUNNING);
ut_a(thr_get_trx(thr)->error_state == DB_SUCCESS); ut_a(thr_get_trx(thr)->error_state == DB_SUCCESS);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex)); ut_ad(!mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
/* cumul_resource counts how much resources the OS thread (NOT the /* cumul_resource counts how much resources the OS thread (NOT the
query thread) has spent in this function */ query thread) has spent in this function */
......
...@@ -162,9 +162,8 @@ read_view_oldest_copy_or_open_new( ...@@ -162,9 +162,8 @@ read_view_oldest_copy_or_open_new(
ulint n; ulint n;
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
old_view = UT_LIST_GET_LAST(trx_sys->view_list); old_view = UT_LIST_GET_LAST(trx_sys->view_list);
if (old_view == NULL) { if (old_view == NULL) {
...@@ -245,9 +244,9 @@ read_view_open_now( ...@@ -245,9 +244,9 @@ read_view_open_now(
read_view_t* view; read_view_t* view;
trx_t* trx; trx_t* trx;
ulint n; ulint n;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
view = read_view_create_low(UT_LIST_GET_LEN(trx_sys->trx_list), heap); view = read_view_create_low(UT_LIST_GET_LEN(trx_sys->trx_list), heap);
view->creator_trx_id = cr_trx_id; view->creator_trx_id = cr_trx_id;
...@@ -313,9 +312,8 @@ read_view_close( ...@@ -313,9 +312,8 @@ read_view_close(
/*============*/ /*============*/
read_view_t* view) /* in: read view */ read_view_t* view) /* in: read view */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
UT_LIST_REMOVE(view_list, trx_sys->view_list, view); UT_LIST_REMOVE(view_list, trx_sys->view_list, view);
} }
......
...@@ -1748,8 +1748,8 @@ row_create_table_for_mysql( ...@@ -1748,8 +1748,8 @@ row_create_table_for_mysql(
ut_ad(trx->mysql_thread_id == os_thread_get_curr_id()); ut_ad(trx->mysql_thread_id == os_thread_get_curr_id());
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX)); ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX));
ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
ut_ad(mutex_own(&(dict_sys->mutex)));
ut_ad(trx->dict_operation_lock_mode == RW_X_LATCH); ut_ad(trx->dict_operation_lock_mode == RW_X_LATCH);
if (srv_created_new_raw) { if (srv_created_new_raw) {
...@@ -1964,8 +1964,8 @@ row_create_index_for_mysql( ...@@ -1964,8 +1964,8 @@ row_create_index_for_mysql(
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX)); ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX));
ut_ad(mutex_own(&(dict_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
ut_ad(mutex_own(&(dict_sys->mutex)));
ut_ad(trx->mysql_thread_id == os_thread_get_curr_id()); ut_ad(trx->mysql_thread_id == os_thread_get_curr_id());
trx->op_info = "creating index"; trx->op_info = "creating index";
...@@ -2080,8 +2080,8 @@ row_table_add_foreign_constraints( ...@@ -2080,8 +2080,8 @@ row_table_add_foreign_constraints(
{ {
ulint err; ulint err;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#ifdef UNIV_SYNC_DEBUG
ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX)); ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX));
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
ut_a(sql_string); ut_a(sql_string);
...@@ -2246,9 +2246,7 @@ row_get_background_drop_list_len_low(void) ...@@ -2246,9 +2246,7 @@ row_get_background_drop_list_len_low(void)
/*======================================*/ /*======================================*/
/* out: how many tables in list */ /* out: how many tables in list */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
if (!row_mysql_drop_list_inited) { if (!row_mysql_drop_list_inited) {
...@@ -2726,8 +2724,8 @@ row_truncate_table_for_mysql( ...@@ -2726,8 +2724,8 @@ row_truncate_table_for_mysql(
row_mysql_lock_data_dictionary(trx); row_mysql_lock_data_dictionary(trx);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#ifdef UNIV_SYNC_DEBUG
ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX)); ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX));
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
...@@ -3001,8 +2999,8 @@ row_drop_table_for_mysql( ...@@ -3001,8 +2999,8 @@ row_drop_table_for_mysql(
locked_dictionary = TRUE; locked_dictionary = TRUE;
} }
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(dict_sys->mutex))); ut_ad(mutex_own(&(dict_sys->mutex)));
#ifdef UNIV_SYNC_DEBUG
ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX)); ut_ad(rw_lock_own(&dict_operation_lock, RW_LOCK_EX));
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
......
...@@ -63,8 +63,8 @@ row_vers_impl_x_locked_off_kernel( ...@@ -63,8 +63,8 @@ row_vers_impl_x_locked_off_kernel(
mtr_t mtr; mtr_t mtr;
ulint comp; ulint comp;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#ifdef UNIV_SYNC_DEBUG
ut_ad(!rw_lock_own(&(purge_sys->latch), RW_LOCK_SHARED)); ut_ad(!rw_lock_own(&(purge_sys->latch), RW_LOCK_SHARED));
#endif /* UNIV_SYNC_DEBUG */ #endif /* UNIV_SYNC_DEBUG */
......
...@@ -82,10 +82,7 @@ srv_que_task_enqueue_low( ...@@ -82,10 +82,7 @@ srv_que_task_enqueue_low(
que_thr_t* thr) /* in: query thread */ que_thr_t* thr) /* in: query thread */
{ {
ut_ad(thr); ut_ad(thr);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
UT_LIST_ADD_LAST(queue, srv_sys->tasks, thr); UT_LIST_ADD_LAST(queue, srv_sys->tasks, thr);
......
...@@ -724,9 +724,7 @@ srv_suspend_thread(void) ...@@ -724,9 +724,7 @@ srv_suspend_thread(void)
ulint slot_no; ulint slot_no;
ulint type; ulint type;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
slot_no = thr_local_get_slot_no(os_thread_get_curr_id()); slot_no = thr_local_get_slot_no(os_thread_get_curr_id());
...@@ -778,9 +776,7 @@ srv_release_threads( ...@@ -778,9 +776,7 @@ srv_release_threads(
ut_ad(type >= SRV_WORKER); ut_ad(type >= SRV_WORKER);
ut_ad(type <= SRV_MASTER); ut_ad(type <= SRV_MASTER);
ut_ad(n > 0); ut_ad(n > 0);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
for (i = 0; i < OS_THREAD_MAX_N; i++) { for (i = 0; i < OS_THREAD_MAX_N; i++) {
...@@ -1303,9 +1299,7 @@ srv_table_reserve_slot_for_mysql(void) ...@@ -1303,9 +1299,7 @@ srv_table_reserve_slot_for_mysql(void)
srv_slot_t* slot; srv_slot_t* slot;
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
i = 0; i = 0;
slot = srv_mysql_table + i; slot = srv_mysql_table + i;
...@@ -1385,9 +1379,7 @@ srv_suspend_mysql_thread( ...@@ -1385,9 +1379,7 @@ srv_suspend_mysql_thread(
ulint sec; ulint sec;
ulint ms; ulint ms;
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex)); ut_ad(!mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
trx = thr_get_trx(thr); trx = thr_get_trx(thr);
...@@ -1533,9 +1525,7 @@ srv_release_mysql_thread_if_suspended( ...@@ -1533,9 +1525,7 @@ srv_release_mysql_thread_if_suspended(
srv_slot_t* slot; srv_slot_t* slot;
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
for (i = 0; i < OS_THREAD_MAX_N; i++) { for (i = 0; i < OS_THREAD_MAX_N; i++) {
......
...@@ -339,9 +339,8 @@ rw_lock_x_lock_low( ...@@ -339,9 +339,8 @@ rw_lock_x_lock_low(
const char* file_name,/* in: file name where lock requested */ const char* file_name,/* in: file name where lock requested */
ulint line) /* in: line where requested */ ulint line) /* in: line where requested */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(rw_lock_get_mutex(lock))); ut_ad(mutex_own(rw_lock_get_mutex(lock)));
#endif /* UNIV_SYNC_DEBUG */
if (rw_lock_get_writer(lock) == RW_LOCK_NOT_LOCKED) { if (rw_lock_get_writer(lock) == RW_LOCK_NOT_LOCKED) {
if (rw_lock_get_reader_count(lock) == 0) { if (rw_lock_get_reader_count(lock) == 0) {
......
...@@ -329,6 +329,7 @@ mutex_enter_nowait( ...@@ -329,6 +329,7 @@ mutex_enter_nowait(
if (!mutex_test_and_set(mutex)) { if (!mutex_test_and_set(mutex)) {
ut_d(mutex->thread_id = os_thread_get_curr_id());
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
mutex_set_debug_info(mutex, file_name, line); mutex_set_debug_info(mutex, file_name, line);
#endif #endif
...@@ -346,13 +347,29 @@ Checks that the mutex has been initialized. */ ...@@ -346,13 +347,29 @@ Checks that the mutex has been initialized. */
ibool ibool
mutex_validate( mutex_validate(
/*===========*/ /*===========*/
mutex_t* mutex) const mutex_t* mutex)
{ {
ut_a(mutex); ut_a(mutex);
ut_a(mutex->magic_n == MUTEX_MAGIC_N); ut_a(mutex->magic_n == MUTEX_MAGIC_N);
return(TRUE); return(TRUE);
} }
/**********************************************************************
Checks that the current thread owns the mutex. Works only in the debug
version. */
ibool
mutex_own(
/*======*/
/* out: TRUE if owns */
const mutex_t* mutex) /* in: mutex */
{
ut_ad(mutex_validate(mutex));
return(mutex_get_lock_word(mutex) == 1
&& os_thread_eq(mutex->thread_id, os_thread_get_curr_id()));
}
#endif /* UNIV_DEBUG */ #endif /* UNIV_DEBUG */
/********************************************************************** /**********************************************************************
...@@ -451,6 +468,7 @@ spin_loop: ...@@ -451,6 +468,7 @@ spin_loop:
if (mutex_test_and_set(mutex) == 0) { if (mutex_test_and_set(mutex) == 0) {
/* Succeeded! */ /* Succeeded! */
ut_d(mutex->thread_id = os_thread_get_curr_id());
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
mutex_set_debug_info(mutex, file_name, line); mutex_set_debug_info(mutex, file_name, line);
#endif #endif
...@@ -492,6 +510,7 @@ spin_loop: ...@@ -492,6 +510,7 @@ spin_loop:
sync_array_free_cell_protected(sync_primary_wait_array, sync_array_free_cell_protected(sync_primary_wait_array,
index); index);
ut_d(mutex->thread_id = os_thread_get_curr_id());
#ifdef UNIV_SYNC_DEBUG #ifdef UNIV_SYNC_DEBUG
mutex_set_debug_info(mutex, file_name, line); mutex_set_debug_info(mutex, file_name, line);
#endif #endif
...@@ -592,7 +611,6 @@ mutex_set_debug_info( ...@@ -592,7 +611,6 @@ mutex_set_debug_info(
mutex->file_name = file_name; mutex->file_name = file_name;
mutex->line = line; mutex->line = line;
mutex->thread_id = os_thread_get_curr_id();
} }
/********************************************************************** /**********************************************************************
...@@ -614,31 +632,6 @@ mutex_get_debug_info( ...@@ -614,31 +632,6 @@ mutex_get_debug_info(
*thread_id = mutex->thread_id; *thread_id = mutex->thread_id;
} }
/**********************************************************************
Checks that the current thread owns the mutex. Works only in the debug
version. */
ibool
mutex_own(
/*======*/
/* out: TRUE if owns */
mutex_t* mutex) /* in: mutex */
{
ut_ad(mutex_validate(mutex));
if (mutex_get_lock_word(mutex) != 1) {
return(FALSE);
}
if (!os_thread_eq(mutex->thread_id, os_thread_get_curr_id())) {
return(FALSE);
}
return(TRUE);
}
/********************************************************************** /**********************************************************************
Prints debug info of currently reserved mutexes. */ Prints debug info of currently reserved mutexes. */
static static
......
...@@ -64,9 +64,7 @@ thr_local_get( ...@@ -64,9 +64,7 @@ thr_local_get(
try_again: try_again:
ut_ad(thr_local_hash); ut_ad(thr_local_hash);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&thr_local_mutex)); ut_ad(mutex_own(&thr_local_mutex));
#endif /* UNIV_SYNC_DEBUG */
/* Look for the local struct in the hash table */ /* Look for the local struct in the hash table */
......
...@@ -197,9 +197,7 @@ void ...@@ -197,9 +197,7 @@ void
trx_purge_sys_create(void) trx_purge_sys_create(void)
/*======================*/ /*======================*/
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
purge_sys = mem_alloc(sizeof(trx_purge_t)); purge_sys = mem_alloc(sizeof(trx_purge_t));
...@@ -260,9 +258,8 @@ trx_purge_add_update_undo_to_history( ...@@ -260,9 +258,8 @@ trx_purge_add_update_undo_to_history(
ut_ad(undo); ut_ad(undo);
rseg = undo->rseg; rseg = undo->rseg;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(rseg->mutex))); ut_ad(mutex_own(&(rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
rseg_header = trx_rsegf_get(rseg->space, rseg->page_no, mtr); rseg_header = trx_rsegf_get(rseg->space, rseg->page_no, mtr);
...@@ -341,9 +338,7 @@ trx_purge_free_segment( ...@@ -341,9 +338,7 @@ trx_purge_free_segment(
/* fputs("Freeing an update undo log segment\n", stderr); */ /* fputs("Freeing an update undo log segment\n", stderr); */
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(purge_sys->mutex))); ut_ad(mutex_own(&(purge_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
loop: loop:
mtr_start(&mtr); mtr_start(&mtr);
mutex_enter(&(rseg->mutex)); mutex_enter(&(rseg->mutex));
...@@ -445,9 +440,7 @@ trx_purge_truncate_rseg_history( ...@@ -445,9 +440,7 @@ trx_purge_truncate_rseg_history(
ulint n_removed_logs = 0; ulint n_removed_logs = 0;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(purge_sys->mutex))); ut_ad(mutex_own(&(purge_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
mtr_start(&mtr); mtr_start(&mtr);
mutex_enter(&(rseg->mutex)); mutex_enter(&(rseg->mutex));
...@@ -537,9 +530,7 @@ trx_purge_truncate_history(void) ...@@ -537,9 +530,7 @@ trx_purge_truncate_history(void)
dulint limit_trx_no; dulint limit_trx_no;
dulint limit_undo_no; dulint limit_undo_no;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(purge_sys->mutex))); ut_ad(mutex_own(&(purge_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
trx_purge_arr_get_biggest(purge_sys->arr, &limit_trx_no, trx_purge_arr_get_biggest(purge_sys->arr, &limit_trx_no,
&limit_undo_no); &limit_undo_no);
...@@ -579,9 +570,7 @@ trx_purge_truncate_if_arr_empty(void) ...@@ -579,9 +570,7 @@ trx_purge_truncate_if_arr_empty(void)
/*=================================*/ /*=================================*/
/* out: TRUE if array empty */ /* out: TRUE if array empty */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(purge_sys->mutex))); ut_ad(mutex_own(&(purge_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (purge_sys->arr->n_used == 0) { if (purge_sys->arr->n_used == 0) {
...@@ -610,9 +599,7 @@ trx_purge_rseg_get_next_history_log( ...@@ -610,9 +599,7 @@ trx_purge_rseg_get_next_history_log(
ibool del_marks; ibool del_marks;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(purge_sys->mutex))); ut_ad(mutex_own(&(purge_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
mutex_enter(&(rseg->mutex)); mutex_enter(&(rseg->mutex));
...@@ -715,9 +702,7 @@ trx_purge_choose_next_log(void) ...@@ -715,9 +702,7 @@ trx_purge_choose_next_log(void)
ulint offset = 0; /* remove warning (??? bug ???) */ ulint offset = 0; /* remove warning (??? bug ???) */
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(purge_sys->mutex))); ut_ad(mutex_own(&(purge_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(purge_sys->next_stored == FALSE); ut_ad(purge_sys->next_stored == FALSE);
rseg = UT_LIST_GET_FIRST(trx_sys->rseg_list); rseg = UT_LIST_GET_FIRST(trx_sys->rseg_list);
...@@ -818,9 +803,7 @@ trx_purge_get_next_rec( ...@@ -818,9 +803,7 @@ trx_purge_get_next_rec(
ulint cmpl_info; ulint cmpl_info;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(purge_sys->mutex))); ut_ad(mutex_own(&(purge_sys->mutex)));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(purge_sys->next_stored); ut_ad(purge_sys->next_stored);
space = purge_sys->rseg->space; space = purge_sys->rseg->space;
......
...@@ -785,10 +785,8 @@ trx_roll_try_truncate( ...@@ -785,10 +785,8 @@ trx_roll_try_truncate(
dulint limit; dulint limit;
dulint biggest; dulint biggest;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(trx->undo_mutex))); ut_ad(mutex_own(&(trx->undo_mutex)));
ut_ad(mutex_own(&((trx->rseg)->mutex))); ut_ad(mutex_own(&((trx->rseg)->mutex)));
#endif /* UNIV_SYNC_DEBUG */
trx->pages_undone = 0; trx->pages_undone = 0;
...@@ -831,9 +829,7 @@ trx_roll_pop_top_rec( ...@@ -831,9 +829,7 @@ trx_roll_pop_top_rec(
trx_undo_rec_t* prev_rec; trx_undo_rec_t* prev_rec;
page_t* prev_rec_page; page_t* prev_rec_page;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(trx->undo_mutex))); ut_ad(mutex_own(&(trx->undo_mutex)));
#endif /* UNIV_SYNC_DEBUG */
undo_page = trx_undo_page_get_s_latched(undo->space, undo_page = trx_undo_page_get_s_latched(undo->space,
undo->top_page_no, mtr); undo->top_page_no, mtr);
...@@ -1060,9 +1056,7 @@ trx_rollback( ...@@ -1060,9 +1056,7 @@ trx_rollback(
que_thr_t* thr; que_thr_t* thr;
/* que_thr_t* thr2; */ /* que_thr_t* thr2; */
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad((trx->undo_no_arr == NULL) || ((trx->undo_no_arr)->n_used == 0)); ut_ad((trx->undo_no_arr == NULL) || ((trx->undo_no_arr)->n_used == 0));
/* Initialize the rollback field in the transaction */ /* Initialize the rollback field in the transaction */
...@@ -1131,9 +1125,7 @@ trx_roll_graph_build( ...@@ -1131,9 +1125,7 @@ trx_roll_graph_build(
que_thr_t* thr; que_thr_t* thr;
/* que_thr_t* thr2; */ /* que_thr_t* thr2; */
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
heap = mem_heap_create(512); heap = mem_heap_create(512);
fork = que_fork_create(NULL, NULL, QUE_FORK_ROLLBACK, heap); fork = que_fork_create(NULL, NULL, QUE_FORK_ROLLBACK, heap);
...@@ -1160,9 +1152,7 @@ trx_finish_error_processing( ...@@ -1160,9 +1152,7 @@ trx_finish_error_processing(
trx_sig_t* sig; trx_sig_t* sig;
trx_sig_t* next_sig; trx_sig_t* next_sig;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
sig = UT_LIST_GET_FIRST(trx->signals); sig = UT_LIST_GET_FIRST(trx->signals);
...@@ -1195,9 +1185,7 @@ trx_finish_partial_rollback_off_kernel( ...@@ -1195,9 +1185,7 @@ trx_finish_partial_rollback_off_kernel(
{ {
trx_sig_t* sig; trx_sig_t* sig;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
sig = UT_LIST_GET_FIRST(trx->signals); sig = UT_LIST_GET_FIRST(trx->signals);
...@@ -1228,9 +1216,7 @@ trx_finish_rollback_off_kernel( ...@@ -1228,9 +1216,7 @@ trx_finish_rollback_off_kernel(
trx_sig_t* sig; trx_sig_t* sig;
trx_sig_t* next_sig; trx_sig_t* next_sig;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_a(trx->undo_no_arr == NULL || trx->undo_no_arr->n_used == 0); ut_a(trx->undo_no_arr == NULL || trx->undo_no_arr->n_used == 0);
......
...@@ -60,9 +60,7 @@ trx_rseg_header_create( ...@@ -60,9 +60,7 @@ trx_rseg_header_create(
page_t* page; page_t* page;
ut_ad(mtr); ut_ad(mtr);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(mtr_memo_contains(mtr, fil_space_get_latch(space), ut_ad(mtr_memo_contains(mtr, fil_space_get_latch(space),
MTR_MEMO_X_LOCK)); MTR_MEMO_X_LOCK));
sys_header = trx_sysf_get(mtr); sys_header = trx_sysf_get(mtr);
...@@ -138,9 +136,7 @@ trx_rseg_mem_create( ...@@ -138,9 +136,7 @@ trx_rseg_mem_create(
ulint sum_of_undo_sizes; ulint sum_of_undo_sizes;
ulint len; ulint len;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
rseg = mem_alloc(sizeof(trx_rseg_t)); rseg = mem_alloc(sizeof(trx_rseg_t));
......
...@@ -547,9 +547,7 @@ trx_in_trx_list( ...@@ -547,9 +547,7 @@ trx_in_trx_list(
{ {
trx_t* trx; trx_t* trx;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
trx = UT_LIST_GET_FIRST(trx_sys->trx_list); trx = UT_LIST_GET_FIRST(trx_sys->trx_list);
...@@ -576,9 +574,7 @@ trx_sys_flush_max_trx_id(void) ...@@ -576,9 +574,7 @@ trx_sys_flush_max_trx_id(void)
trx_sysf_t* sys_header; trx_sysf_t* sys_header;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
mtr_start(&mtr); mtr_start(&mtr);
...@@ -799,9 +795,7 @@ trx_sysf_rseg_find_free( ...@@ -799,9 +795,7 @@ trx_sysf_rseg_find_free(
ulint page_no; ulint page_no;
ulint i; ulint i;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(kernel_mutex))); ut_ad(mutex_own(&(kernel_mutex)));
#endif /* UNIV_SYNC_DEBUG */
sys_header = trx_sysf_get(mtr); sys_header = trx_sysf_get(mtr);
......
...@@ -101,9 +101,7 @@ trx_create( ...@@ -101,9 +101,7 @@ trx_create(
{ {
trx_t* trx; trx_t* trx;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
trx = mem_alloc(sizeof(trx_t)); trx = mem_alloc(sizeof(trx_t));
...@@ -280,9 +278,7 @@ trx_free( ...@@ -280,9 +278,7 @@ trx_free(
/*=====*/ /*=====*/
trx_t* trx) /* in, own: trx object */ trx_t* trx) /* in, own: trx object */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
if (trx->declared_to_be_inside_innodb) { if (trx->declared_to_be_inside_innodb) {
ut_print_timestamp(stderr); ut_print_timestamp(stderr);
...@@ -406,9 +402,7 @@ trx_list_insert_ordered( ...@@ -406,9 +402,7 @@ trx_list_insert_ordered(
{ {
trx_t* trx2; trx_t* trx2;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
trx2 = UT_LIST_GET_FIRST(trx_sys->trx_list); trx2 = UT_LIST_GET_FIRST(trx_sys->trx_list);
...@@ -633,9 +627,7 @@ trx_assign_rseg(void) ...@@ -633,9 +627,7 @@ trx_assign_rseg(void)
{ {
trx_rseg_t* rseg = trx_sys->latest_rseg; trx_rseg_t* rseg = trx_sys->latest_rseg;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
loop: loop:
/* Get next rseg in a round-robin fashion */ /* Get next rseg in a round-robin fashion */
...@@ -672,9 +664,7 @@ trx_start_low( ...@@ -672,9 +664,7 @@ trx_start_low(
{ {
trx_rseg_t* rseg; trx_rseg_t* rseg;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(trx->rseg == NULL); ut_ad(trx->rseg == NULL);
if (trx->type == TRX_PURGE) { if (trx->type == TRX_PURGE) {
...@@ -749,9 +739,7 @@ trx_commit_off_kernel( ...@@ -749,9 +739,7 @@ trx_commit_off_kernel(
ibool must_flush_log = FALSE; ibool must_flush_log = FALSE;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
trx->must_flush_log_later = FALSE; trx->must_flush_log_later = FALSE;
...@@ -851,9 +839,7 @@ trx_commit_off_kernel( ...@@ -851,9 +839,7 @@ trx_commit_off_kernel(
ut_ad(trx->conc_state == TRX_ACTIVE ut_ad(trx->conc_state == TRX_ACTIVE
|| trx->conc_state == TRX_PREPARED); || trx->conc_state == TRX_PREPARED);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
/* The following assignment makes the transaction committed in memory /* The following assignment makes the transaction committed in memory
and makes its changes to data visible to other transactions. and makes its changes to data visible to other transactions.
...@@ -1036,9 +1022,7 @@ trx_handle_commit_sig_off_kernel( ...@@ -1036,9 +1022,7 @@ trx_handle_commit_sig_off_kernel(
trx_sig_t* sig; trx_sig_t* sig;
trx_sig_t* next_sig; trx_sig_t* next_sig;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
trx->que_state = TRX_QUE_COMMITTING; trx->que_state = TRX_QUE_COMMITTING;
...@@ -1078,9 +1062,7 @@ trx_end_lock_wait( ...@@ -1078,9 +1062,7 @@ trx_end_lock_wait(
{ {
que_thr_t* thr; que_thr_t* thr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(trx->que_state == TRX_QUE_LOCK_WAIT); ut_ad(trx->que_state == TRX_QUE_LOCK_WAIT);
thr = UT_LIST_GET_FIRST(trx->wait_thrs); thr = UT_LIST_GET_FIRST(trx->wait_thrs);
...@@ -1107,9 +1089,7 @@ trx_lock_wait_to_suspended( ...@@ -1107,9 +1089,7 @@ trx_lock_wait_to_suspended(
{ {
que_thr_t* thr; que_thr_t* thr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(trx->que_state == TRX_QUE_LOCK_WAIT); ut_ad(trx->que_state == TRX_QUE_LOCK_WAIT);
thr = UT_LIST_GET_FIRST(trx->wait_thrs); thr = UT_LIST_GET_FIRST(trx->wait_thrs);
...@@ -1137,9 +1117,7 @@ trx_sig_reply_wait_to_suspended( ...@@ -1137,9 +1117,7 @@ trx_sig_reply_wait_to_suspended(
trx_sig_t* sig; trx_sig_t* sig;
que_thr_t* thr; que_thr_t* thr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
sig = UT_LIST_GET_FIRST(trx->reply_signals); sig = UT_LIST_GET_FIRST(trx->reply_signals);
...@@ -1172,9 +1150,7 @@ trx_sig_is_compatible( ...@@ -1172,9 +1150,7 @@ trx_sig_is_compatible(
{ {
trx_sig_t* sig; trx_sig_t* sig;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
if (UT_LIST_GET_LEN(trx->signals) == 0) { if (UT_LIST_GET_LEN(trx->signals) == 0) {
...@@ -1260,9 +1236,7 @@ trx_sig_send( ...@@ -1260,9 +1236,7 @@ trx_sig_send(
trx_t* receiver_trx; trx_t* receiver_trx;
ut_ad(trx); ut_ad(trx);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
if (!trx_sig_is_compatible(trx, type, sender)) { if (!trx_sig_is_compatible(trx, type, sender)) {
/* The signal is not compatible with the other signals in /* The signal is not compatible with the other signals in
...@@ -1332,9 +1306,7 @@ trx_end_signal_handling( ...@@ -1332,9 +1306,7 @@ trx_end_signal_handling(
/*====================*/ /*====================*/
trx_t* trx) /* in: trx */ trx_t* trx) /* in: trx */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(trx->handling_signals == TRUE); ut_ad(trx->handling_signals == TRUE);
trx->handling_signals = FALSE; trx->handling_signals = FALSE;
...@@ -1368,9 +1340,7 @@ loop: ...@@ -1368,9 +1340,7 @@ loop:
we can process immediately */ we can process immediately */
ut_ad(trx); ut_ad(trx);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
if (trx->handling_signals && (UT_LIST_GET_LEN(trx->signals) == 0)) { if (trx->handling_signals && (UT_LIST_GET_LEN(trx->signals) == 0)) {
...@@ -1471,9 +1441,7 @@ trx_sig_reply( ...@@ -1471,9 +1441,7 @@ trx_sig_reply(
trx_t* receiver_trx; trx_t* receiver_trx;
ut_ad(sig); ut_ad(sig);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
if (sig->receiver != NULL) { if (sig->receiver != NULL) {
ut_ad((sig->receiver)->state == QUE_THR_SIG_REPLY_WAIT); ut_ad((sig->receiver)->state == QUE_THR_SIG_REPLY_WAIT);
...@@ -1501,9 +1469,7 @@ trx_sig_remove( ...@@ -1501,9 +1469,7 @@ trx_sig_remove(
trx_sig_t* sig) /* in, own: signal */ trx_sig_t* sig) /* in, own: signal */
{ {
ut_ad(trx && sig); ut_ad(trx && sig);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(sig->receiver == NULL); ut_ad(sig->receiver == NULL);
...@@ -1820,9 +1786,7 @@ trx_prepare_off_kernel( ...@@ -1820,9 +1786,7 @@ trx_prepare_off_kernel(
dulint lsn; dulint lsn;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
rseg = trx->rseg; rseg = trx->rseg;
...@@ -1868,9 +1832,7 @@ trx_prepare_off_kernel( ...@@ -1868,9 +1832,7 @@ trx_prepare_off_kernel(
mutex_enter(&kernel_mutex); mutex_enter(&kernel_mutex);
} }
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
/*--------------------------------------*/ /*--------------------------------------*/
trx->conc_state = TRX_PREPARED; trx->conc_state = TRX_PREPARED;
......
...@@ -395,9 +395,7 @@ trx_undo_seg_create( ...@@ -395,9 +395,7 @@ trx_undo_seg_create(
ibool success; ibool success;
ut_ad(mtr && id && rseg_hdr); ut_ad(mtr && id && rseg_hdr);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(rseg->mutex))); ut_ad(mutex_own(&(rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
/* fputs(type == TRX_UNDO_INSERT /* fputs(type == TRX_UNDO_INSERT
? "Creating insert undo log segment\n" ? "Creating insert undo log segment\n"
...@@ -836,11 +834,9 @@ trx_undo_add_page( ...@@ -836,11 +834,9 @@ trx_undo_add_page(
ulint n_reserved; ulint n_reserved;
ibool success; ibool success;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(trx->undo_mutex))); ut_ad(mutex_own(&(trx->undo_mutex)));
ut_ad(!mutex_own(&kernel_mutex)); ut_ad(!mutex_own(&kernel_mutex));
ut_ad(mutex_own(&(trx->rseg->mutex))); ut_ad(mutex_own(&(trx->rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
rseg = trx->rseg; rseg = trx->rseg;
...@@ -911,10 +907,8 @@ trx_undo_free_page( ...@@ -911,10 +907,8 @@ trx_undo_free_page(
ulint hist_size; ulint hist_size;
ut_a(hdr_page_no != page_no); ut_a(hdr_page_no != page_no);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex)); ut_ad(!mutex_own(&kernel_mutex));
ut_ad(mutex_own(&(rseg->mutex))); ut_ad(mutex_own(&(rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
undo_page = trx_undo_page_get(space, page_no, mtr); undo_page = trx_undo_page_get(space, page_no, mtr);
...@@ -961,9 +955,7 @@ trx_undo_free_page_in_rollback( ...@@ -961,9 +955,7 @@ trx_undo_free_page_in_rollback(
ulint last_page_no; ulint last_page_no;
ut_ad(undo->hdr_page_no != page_no); ut_ad(undo->hdr_page_no != page_no);
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(trx->undo_mutex))); ut_ad(mutex_own(&(trx->undo_mutex)));
#endif /* UNIV_SYNC_DEBUG */
last_page_no = trx_undo_free_page(undo->rseg, FALSE, undo->space, last_page_no = trx_undo_free_page(undo->rseg, FALSE, undo->space,
undo->hdr_page_no, page_no, mtr); undo->hdr_page_no, page_no, mtr);
...@@ -1016,10 +1008,8 @@ trx_undo_truncate_end( ...@@ -1016,10 +1008,8 @@ trx_undo_truncate_end(
trx_rseg_t* rseg; trx_rseg_t* rseg;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(trx->undo_mutex))); ut_ad(mutex_own(&(trx->undo_mutex)));
ut_ad(mutex_own(&(trx->rseg->mutex))); ut_ad(mutex_own(&(trx->rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
rseg = trx->rseg; rseg = trx->rseg;
...@@ -1096,9 +1086,7 @@ trx_undo_truncate_start( ...@@ -1096,9 +1086,7 @@ trx_undo_truncate_start(
ulint page_no; ulint page_no;
mtr_t mtr; mtr_t mtr;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(rseg->mutex))); ut_ad(mutex_own(&(rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (0 == ut_dulint_cmp(limit, ut_dulint_zero)) { if (0 == ut_dulint_cmp(limit, ut_dulint_zero)) {
...@@ -1164,9 +1152,9 @@ trx_undo_seg_free( ...@@ -1164,9 +1152,9 @@ trx_undo_seg_free(
while (!finished) { while (!finished) {
mtr_start(&mtr); mtr_start(&mtr);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex)); ut_ad(!mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
mutex_enter(&(rseg->mutex)); mutex_enter(&(rseg->mutex));
seg_header = trx_undo_page_get(undo->space, undo->hdr_page_no, seg_header = trx_undo_page_get(undo->space, undo->hdr_page_no,
...@@ -1389,9 +1377,7 @@ trx_undo_mem_create( ...@@ -1389,9 +1377,7 @@ trx_undo_mem_create(
{ {
trx_undo_t* undo; trx_undo_t* undo;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(rseg->mutex))); ut_ad(mutex_own(&(rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (id >= TRX_RSEG_N_SLOTS) { if (id >= TRX_RSEG_N_SLOTS) {
fprintf(stderr, fprintf(stderr,
...@@ -1437,11 +1423,9 @@ trx_undo_mem_init_for_reuse( ...@@ -1437,11 +1423,9 @@ trx_undo_mem_init_for_reuse(
XID* xid, /* in: X/Open XA transaction identification*/ XID* xid, /* in: X/Open XA transaction identification*/
ulint offset) /* in: undo log header byte offset on page */ ulint offset) /* in: undo log header byte offset on page */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&((undo->rseg)->mutex))); ut_ad(mutex_own(&((undo->rseg)->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (undo->id >= TRX_RSEG_N_SLOTS) { if (UNIV_UNLIKELY(undo->id >= TRX_RSEG_N_SLOTS)) {
fprintf(stderr, "InnoDB: Error: undo->id is %lu\n", fprintf(stderr, "InnoDB: Error: undo->id is %lu\n",
(ulong) undo->id); (ulong) undo->id);
...@@ -1501,9 +1485,7 @@ trx_undo_create( ...@@ -1501,9 +1485,7 @@ trx_undo_create(
trx_undo_t* undo; trx_undo_t* undo;
page_t* undo_page; page_t* undo_page;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(rseg->mutex))); ut_ad(mutex_own(&(rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (rseg->curr_size == rseg->max_size) { if (rseg->curr_size == rseg->max_size) {
...@@ -1561,9 +1543,7 @@ trx_undo_reuse_cached( ...@@ -1561,9 +1543,7 @@ trx_undo_reuse_cached(
page_t* undo_page; page_t* undo_page;
ulint offset; ulint offset;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(rseg->mutex))); ut_ad(mutex_own(&(rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
if (type == TRX_UNDO_INSERT) { if (type == TRX_UNDO_INSERT) {
...@@ -1671,15 +1651,12 @@ trx_undo_assign_undo( ...@@ -1671,15 +1651,12 @@ trx_undo_assign_undo(
rseg = trx->rseg; rseg = trx->rseg;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(trx->undo_mutex))); ut_ad(mutex_own(&(trx->undo_mutex)));
#endif /* UNIV_SYNC_DEBUG */
mtr_start(&mtr); mtr_start(&mtr);
#ifdef UNIV_SYNC_DEBUG
ut_ad(!mutex_own(&kernel_mutex)); ut_ad(!mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
mutex_enter(&(rseg->mutex)); mutex_enter(&(rseg->mutex));
undo = trx_undo_reuse_cached(trx, rseg, type, trx->id, &trx->xid, undo = trx_undo_reuse_cached(trx, rseg, type, trx->id, &trx->xid,
...@@ -1836,9 +1813,8 @@ trx_undo_update_cleanup( ...@@ -1836,9 +1813,8 @@ trx_undo_update_cleanup(
undo = trx->update_undo; undo = trx->update_undo;
rseg = trx->rseg; rseg = trx->rseg;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(rseg->mutex))); ut_ad(mutex_own(&(rseg->mutex)));
#endif /* UNIV_SYNC_DEBUG */
trx_purge_add_update_undo_to_history(trx, undo_page, mtr); trx_purge_add_update_undo_to_history(trx, undo_page, mtr);
UT_LIST_REMOVE(undo_list, rseg->update_undo_list, undo); UT_LIST_REMOVE(undo_list, rseg->update_undo_list, undo);
......
...@@ -32,9 +32,8 @@ sess_open(void) ...@@ -32,9 +32,8 @@ sess_open(void)
{ {
sess_t* sess; sess_t* sess;
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
sess = mem_alloc(sizeof(sess_t)); sess = mem_alloc(sizeof(sess_t));
sess->state = SESS_ACTIVE; sess->state = SESS_ACTIVE;
...@@ -54,9 +53,7 @@ sess_close( ...@@ -54,9 +53,7 @@ sess_close(
/*=======*/ /*=======*/
sess_t* sess) /* in, own: session object */ sess_t* sess) /* in, own: session object */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
ut_ad(sess->trx == NULL); ut_ad(sess->trx == NULL);
mem_free(sess); mem_free(sess);
...@@ -72,9 +69,8 @@ sess_try_close( ...@@ -72,9 +69,8 @@ sess_try_close(
/* out: TRUE if closed */ /* out: TRUE if closed */
sess_t* sess) /* in, own: session object */ sess_t* sess) /* in, own: session object */
{ {
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&kernel_mutex)); ut_ad(mutex_own(&kernel_mutex));
#endif /* UNIV_SYNC_DEBUG */
if (UT_LIST_GET_LEN(sess->graphs) == 0) { if (UT_LIST_GET_LEN(sess->graphs) == 0) {
sess_close(sess); sess_close(sess);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment