1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-31 22:22:30 +03:00

FIx for BUG#8682 "flush_block_commit test hangs on HPUX":

start_waiting_global_read_lock() should wake up all those who are waiting
for protect_against_global_read_lock to go down to 0: those registered in waiting_for_read_lock
AND those registered in global_read_lock_blocks_commit.


sql/lock.cc:
  start_waiting_global_read_lock() should wake up all those who are waiting
  for protect_against_global_read_lock to go down to 0: those registered in waiting_for_read_lock
  AND those registered in global_read_lock_blocks_commit.
This commit is contained in:
unknown
2005-02-23 17:38:51 +01:00
parent 2ae6eb094b
commit 5941f19bbd

View File

@@ -715,7 +715,7 @@ static void print_lock_error(int error)
least the first step above)
global_read_lock_blocks_commit
count of threads which have the global read lock and block
commits (i.e. have completed the second step above)
commits (i.e. are in or have completed the second step above)
waiting_for_read_lock
count of threads which want to take a global read lock but cannot
protect_against_global_read_lock
@@ -886,7 +886,8 @@ void start_waiting_global_read_lock(THD *thd)
if (unlikely(thd->global_read_lock))
DBUG_VOID_RETURN;
(void) pthread_mutex_lock(&LOCK_open);
tmp= (!--protect_against_global_read_lock && waiting_for_read_lock);
tmp= (!--protect_against_global_read_lock &&
(waiting_for_read_lock || global_read_lock_blocks_commit));
(void) pthread_mutex_unlock(&LOCK_open);
if (tmp)
pthread_cond_broadcast(&COND_refresh);