mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into dl145b.mysql.com:/home/ndbdev/tomas/mysql-5.1
This commit is contained in:
23
sql/lock.cc
23
sql/lock.cc
@ -349,20 +349,25 @@ void mysql_lock_abort(THD *thd, TABLE *table)
|
||||
|
||||
/* Abort one thread / table combination */
|
||||
|
||||
void mysql_lock_abort_for_thread(THD *thd, TABLE *table)
|
||||
bool mysql_lock_abort_for_thread(THD *thd, TABLE *table)
|
||||
{
|
||||
MYSQL_LOCK *locked;
|
||||
TABLE *write_lock_used;
|
||||
bool result= FALSE;
|
||||
DBUG_ENTER("mysql_lock_abort_for_thread");
|
||||
|
||||
if ((locked = get_lock_data(thd,&table,1,1,&write_lock_used)))
|
||||
{
|
||||
for (uint i=0; i < locked->lock_count; i++)
|
||||
thr_abort_locks_for_thread(locked->locks[i]->lock,
|
||||
table->in_use->real_id);
|
||||
{
|
||||
bool found;
|
||||
found= thr_abort_locks_for_thread(locked->locks[i]->lock,
|
||||
table->in_use->real_id);
|
||||
result|= found;
|
||||
}
|
||||
my_free((gptr) locked,MYF(0));
|
||||
}
|
||||
DBUG_VOID_RETURN;
|
||||
DBUG_RETURN(result);
|
||||
}
|
||||
|
||||
|
||||
@ -605,8 +610,14 @@ int lock_table_name(THD *thd, TABLE_LIST *table_list)
|
||||
my_free((gptr) table,MYF(0));
|
||||
DBUG_RETURN(-1);
|
||||
}
|
||||
if (remove_table_from_cache(thd, db, table_list->table_name, 0))
|
||||
DBUG_RETURN(1); // Table is in use
|
||||
|
||||
{
|
||||
if (remove_table_from_cache(thd, db,
|
||||
table_list->table_name, RTFC_NO_FLAG))
|
||||
{
|
||||
DBUG_RETURN(1); // Table is in use
|
||||
}
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user