summaryrefslogtreecommitdiff
path: root/innobase/sync
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2003-10-07 17:28:59 +0300
committerheikki@hundin.mysql.fi <>2003-10-07 17:28:59 +0300
commit6112853cdab2770e92f9cfefdfef9c0a14b71cb7 (patch)
treed53a5cc4e9736e149276ba08d53a7dd09a14b4fd /innobase/sync
parent862ff0ed1c1dad812af60987d7ec1a2706d3772c (diff)
downloadmariadb-git-6112853cdab2770e92f9cfefdfef9c0a14b71cb7.tar.gz
Many files:
Multiple tablespaces for InnoDB sql_table.cc: Tell explicitly that InnoDB should retrieve all columns in CHECKSUM TABLE sql_update.cc, sql_select.cc, my_base.h: More descriptive flag name HA_EXTRA_RETRIEVE_ALL_COLS
Diffstat (limited to 'innobase/sync')
-rw-r--r--innobase/sync/sync0rw.c14
-rw-r--r--innobase/sync/sync0sync.c19
2 files changed, 29 insertions, 4 deletions
diff --git a/innobase/sync/sync0rw.c b/innobase/sync/sync0rw.c
index b214bca0470..5c5abebd5e1 100644
--- a/innobase/sync/sync0rw.c
+++ b/innobase/sync/sync0rw.c
@@ -121,6 +121,11 @@ rw_lock_create_func(
lock->last_x_line = 0;
mutex_enter(&rw_lock_list_mutex);
+
+ if (UT_LIST_GET_LEN(rw_lock_list) > 0) {
+ ut_a(UT_LIST_GET_FIRST(rw_lock_list)->magic_n
+ == RW_LOCK_MAGIC_N);
+ }
UT_LIST_ADD_FIRST(list, rw_lock_list, lock);
@@ -137,7 +142,7 @@ rw_lock_free(
/*=========*/
rw_lock_t* lock) /* in: rw-lock */
{
- ut_ad(rw_lock_validate(lock));
+ ut_a(rw_lock_validate(lock));
ut_a(rw_lock_get_writer(lock) == RW_LOCK_NOT_LOCKED);
ut_a(rw_lock_get_waiters(lock) == 0);
ut_a(rw_lock_get_reader_count(lock) == 0);
@@ -148,6 +153,13 @@ rw_lock_free(
mutex_enter(&rw_lock_list_mutex);
+ if (UT_LIST_GET_PREV(list, lock)) {
+ ut_a(UT_LIST_GET_PREV(list, lock)->magic_n == RW_LOCK_MAGIC_N);
+ }
+ if (UT_LIST_GET_NEXT(list, lock)) {
+ ut_a(UT_LIST_GET_NEXT(list, lock)->magic_n == RW_LOCK_MAGIC_N);
+ }
+
UT_LIST_REMOVE(list, rw_lock_list, lock);
mutex_exit(&rw_lock_list_mutex);
diff --git a/innobase/sync/sync0sync.c b/innobase/sync/sync0sync.c
index 773b239189c..680582b05b2 100644
--- a/innobase/sync/sync0sync.c
+++ b/innobase/sync/sync0sync.c
@@ -159,7 +159,7 @@ struct sync_thread_struct{
};
/* Number of slots reserved for each OS thread in the sync level array */
-#define SYNC_THREAD_N_LEVELS 250
+#define SYNC_THREAD_N_LEVELS 7000
struct sync_level_struct{
void* latch; /* pointer to a mutex or an rw-lock; NULL means that
@@ -246,6 +246,10 @@ mutex_create_func(
mutex_enter(&mutex_list_mutex);
+ if (UT_LIST_GET_LEN(mutex_list) > 0) {
+ ut_a(UT_LIST_GET_FIRST(mutex_list)->magic_n == MUTEX_MAGIC_N);
+ }
+
UT_LIST_ADD_FIRST(list, mutex_list, mutex);
mutex_exit(&mutex_list_mutex);
@@ -261,7 +265,7 @@ mutex_free(
/*=======*/
mutex_t* mutex) /* in: mutex */
{
- ut_ad(mutex_validate(mutex));
+ ut_a(mutex_validate(mutex));
ut_a(mutex_get_lock_word(mutex) == 0);
ut_a(mutex_get_waiters(mutex) == 0);
@@ -269,6 +273,15 @@ mutex_free(
mutex_enter(&mutex_list_mutex);
+ if (UT_LIST_GET_PREV(list, mutex)) {
+ ut_a(UT_LIST_GET_PREV(list, mutex)->magic_n
+ == MUTEX_MAGIC_N);
+ }
+ if (UT_LIST_GET_NEXT(list, mutex)) {
+ ut_a(UT_LIST_GET_NEXT(list, mutex)->magic_n
+ == MUTEX_MAGIC_N);
+ }
+
UT_LIST_REMOVE(list, mutex_list, mutex);
mutex_exit(&mutex_list_mutex);
@@ -991,7 +1004,7 @@ sync_thread_add_level(
}
array = thread_slot->levels;
-
+
/* NOTE that there is a problem with _NODE and _LEAF levels: if the
B-tree height changes, then a leaf can change to an internal node
or the other way around. We do not know at present if this can cause