Commit e9677eda authored by monty@hundin.mysql.fi's avatar monty@hundin.mysql.fi

Add missing exit_cond() to lock_global_read_lock().

parent 964c292c
...@@ -7814,7 +7814,7 @@ Some known problems when running MySQL on Linux-Alpha: ...@@ -7814,7 +7814,7 @@ Some known problems when running MySQL on Linux-Alpha:
@itemize @bullet @itemize @bullet
@item @item
Debugging threaded applications like MySQL will not work with Debugging threaded applications like MySQL will not work with
@code{gdb 4.18}. You should download and use gdb 5.0 instead! @code{gdb 4.18}. You should download and use gdb 5.1 instead!
@item @item
If you try linking @code{mysqld} statically when using @code{gcc}, the If you try linking @code{mysqld} statically when using @code{gcc}, the
...@@ -52064,7 +52064,9 @@ more information if @code{mysqld} crashes. ...@@ -52064,7 +52064,9 @@ more information if @code{mysqld} crashes.
With some older @code{gdb} versions on Linux you must use @code{run With some older @code{gdb} versions on Linux you must use @code{run
--one-thread} if you want to be able to debug @code{mysqld} threads. In --one-thread} if you want to be able to debug @code{mysqld} threads. In
this case you can only have one thread active at a time. this case you can only have one thread active at a time. We recommend you
to upgrade to gdb 5.1 ASAP as thread debugging works much better with this
version!
When running @code{mysqld} under gdb, you should disable the stack trace When running @code{mysqld} under gdb, you should disable the stack trace
with @code{--skip-stack-trace} to be able to catch segfaults within gdb. with @code{--skip-stack-trace} to be able to catch segfaults within gdb.
...@@ -543,6 +543,7 @@ bool lock_global_read_lock(THD *thd) ...@@ -543,6 +543,7 @@ bool lock_global_read_lock(THD *thd)
while (protect_against_global_read_lock && !thd->killed) while (protect_against_global_read_lock && !thd->killed)
pthread_cond_wait(&COND_refresh, &LOCK_open); pthread_cond_wait(&COND_refresh, &LOCK_open);
waiting_for_read_lock--; waiting_for_read_lock--;
thd->exit_cond(old_message);
if (thd->killed) if (thd->killed)
{ {
(void) pthread_mutex_unlock(&LOCK_open); (void) pthread_mutex_unlock(&LOCK_open);
......
...@@ -4116,22 +4116,16 @@ do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure) ...@@ -4116,22 +4116,16 @@ do_select(JOIN *join,List<Item> *fields,TABLE *table,Procedure *procedure)
if (error == -3) if (error == -3)
error=0; /* select_limit used */ error=0; /* select_limit used */
} }
if (!table) /* If sending data to client */ if (error < 0)
join->result->send_error(0,NullS); /* purecov: inspected */
else
{ {
if (error < 0) if (!table) // If sending data to client
join->result->send_error(0,NullS); /* purecov: inspected */
else
{ {
join_free(join); // Unlock all cursors join_free(join); // Unlock all cursors
if (join->result->send_eof()) if (join->result->send_eof())
error= -1; error= -1;
} }
}
else if (error < 0)
join->result->send_error(0,NullS); /* purecov: inspected */
if (error >= 0)
{
DBUG_PRINT("info",("%ld records output",join->send_records)); DBUG_PRINT("info",("%ld records output",join->send_records));
} }
if (table) if (table)
...@@ -4226,10 +4220,8 @@ sub_select(JOIN *join,JOIN_TAB *join_tab,bool end_of_records) ...@@ -4226,10 +4220,8 @@ sub_select(JOIN *join,JOIN_TAB *join_tab,bool end_of_records)
info->file->unlock_row(); info->file->unlock_row();
} }
} while (!(error=info->read_record(info))); } while (!(error=info->read_record(info)));
if (error > 0) // Fatal error
return -1;
} }
else if (error > 0) if (error > 0) // Fatal error
return -1; return -1;
if (!found && on_expr) if (!found && on_expr)
......
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