From: kevin.lewis Date: October 4 2011 3:44pm Subject: bzr push into mysql-5.5 branch (kevin.lewis:3565) List-Archive: http://lists.mysql.com/commits/141381 Message-Id: <20111004154456.E337818B7436@dhcp-adc-twvpn-2-vpnpool-10-154-59-203.vpn.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3565 kevin.lewis@stripped 2011-10-04 [merge] Merge with current mysql-5.5 modified: support-files/mysql.spec.sh === modified file 'storage/innobase/include/sync0rw.h' --- a/storage/innobase/include/sync0rw.h revid:joerg.bruehe@stripped +++ b/storage/innobase/include/sync0rw.h revid:kevin.lewis@stripped @@ -542,7 +542,7 @@ mutex. */ UNIV_INTERN void rw_lock_debug_mutex_enter(void); -/*==========================*/ +/*===========================*/ /******************************************************************//** Releases the debug mutex. */ UNIV_INTERN @@ -632,7 +632,8 @@ struct rw_lock_struct { }; #ifdef UNIV_SYNC_DEBUG -/** The structure for storing debug info of an rw-lock */ +/** The structure for storing debug info of an rw-lock. All access to this +structure must be protected by rw_lock_debug_mutex_enter(). */ struct rw_lock_debug_struct { os_thread_id_t thread_id; /*!< The thread id of the thread which === modified file 'storage/innobase/sync/sync0rw.c' --- a/storage/innobase/sync/sync0rw.c revid:joerg.bruehe@stripped +++ b/storage/innobase/sync/sync0rw.c revid:kevin.lewis@stripped @@ -715,7 +715,7 @@ mutex. */ UNIV_INTERN void rw_lock_debug_mutex_enter(void) -/*==========================*/ +/*===========================*/ { loop: if (0 == mutex_enter_nowait(&rw_lock_debug_mutex)) { @@ -942,11 +942,13 @@ rw_lock_list_print_info( putc('\n', file); } + rw_lock_debug_mutex_enter(); info = UT_LIST_GET_FIRST(lock->debug_list); while (info != NULL) { rw_lock_debug_print(file, info); info = UT_LIST_GET_NEXT(list, info); } + rw_lock_debug_mutex_exit(); } #ifndef INNODB_RW_LOCKS_USE_ATOMICS mutex_exit(&(lock->mutex)); @@ -990,11 +992,13 @@ rw_lock_print( putc('\n', stderr); } + rw_lock_debug_mutex_enter(); info = UT_LIST_GET_FIRST(lock->debug_list); while (info != NULL) { rw_lock_debug_print(stderr, info); info = UT_LIST_GET_NEXT(list, info); } + rw_lock_debug_mutex_exit(); } } No bundle (reason: useless for push emails).