diff options
author | Sergei Golubchik <sergii@pisem.net> | 2011-07-18 23:04:24 +0200 |
---|---|---|
committer | Sergei Golubchik <sergii@pisem.net> | 2011-07-18 23:04:24 +0200 |
commit | 4e46d8e5bff140f2549841167dc4b65a3c0a645d (patch) | |
tree | c6612dcc1d0fbd801c084e6c36307d9e5913a293 /storage/xtradb/include/btr0sea.ic | |
parent | 9a02c69f5c6766eaf552284a2a4dd0f1d26ecd2c (diff) | |
parent | d4d7a8fa62c406be73f6c0f6d75e795293db548b (diff) | |
download | mariadb-git-4e46d8e5bff140f2549841167dc4b65a3c0a645d.tar.gz |
merge with xtradb-5.5.15
fix test cases
Diffstat (limited to 'storage/xtradb/include/btr0sea.ic')
-rw-r--r-- | storage/xtradb/include/btr0sea.ic | 73 |
1 files changed, 71 insertions, 2 deletions
diff --git a/storage/xtradb/include/btr0sea.ic b/storage/xtradb/include/btr0sea.ic index beadeeb8d02..e5a8e1190e3 100644 --- a/storage/xtradb/include/btr0sea.ic +++ b/storage/xtradb/include/btr0sea.ic @@ -62,8 +62,8 @@ btr_search_info_update( btr_search_t* info; #ifdef UNIV_SYNC_DEBUG - ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_SHARED)); - ut_ad(!rw_lock_own(&btr_search_latch, RW_LOCK_EX)); + ut_ad(!rw_lock_own(btr_search_get_latch(index->id), RW_LOCK_SHARED)); + ut_ad(!rw_lock_own(btr_search_get_latch(index->id), RW_LOCK_EX)); #endif /* UNIV_SYNC_DEBUG */ info = btr_search_get_info(index); @@ -82,3 +82,72 @@ btr_search_info_update( btr_search_info_update_slow(info, cursor); } + +/*********************************************************************//** +New functions to control split btr_search_index */ +UNIV_INLINE +hash_table_t* +btr_search_get_hash_index( +/*======================*/ + index_id_t key) +{ + return(btr_search_sys->hash_index[key % btr_search_index_num]); +} + +UNIV_INLINE +rw_lock_t* +btr_search_get_latch( +/*=================*/ + index_id_t key) +{ + return(btr_search_latch_part[key % btr_search_index_num]); +} + +UNIV_INLINE +void +btr_search_x_lock_all(void) +/*=======================*/ +{ + ulint i; + + for (i = 0; i < btr_search_index_num; i++) { + rw_lock_x_lock(btr_search_latch_part[i]); + } +} + +UNIV_INLINE +void +btr_search_x_unlock_all(void) +/*==========================*/ +{ + ulint i; + + for (i = 0; i < btr_search_index_num; i++) { + rw_lock_x_unlock(btr_search_latch_part[i]); + } +} + +UNIV_INLINE +void +btr_search_s_lock_all(void) +/*=======================*/ +{ + ulint i; + + for (i = 0; i < btr_search_index_num; i++) { + rw_lock_s_lock(btr_search_latch_part[i]); + } +} + +UNIV_INLINE +void +btr_search_s_unlock_all(void) +/*=========================*/ +{ + ulint i; + + for (i = 0; i < btr_search_index_num; i++) { + rw_lock_s_unlock(btr_search_latch_part[i]); + } +} + |