summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarko@hundin.mysql.fi <>2004-07-12 17:14:13 +0300
committermarko@hundin.mysql.fi <>2004-07-12 17:14:13 +0300
commit88369368f51cb08b92807e536e8a57e387076125 (patch)
tree1ed708733051eb0ecad9dc8581aa577d948a85ad
parenta323342728791af8c7e7a857564cd63f0036497e (diff)
downloadmariadb-git-88369368f51cb08b92807e536e8a57e387076125.tar.gz
InnoDB: LOCK TABLES clean-up, part 2
-rw-r--r--innobase/lock/lock0lock.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/innobase/lock/lock0lock.c b/innobase/lock/lock0lock.c
index 1c82d892d5f..bc03a27c874 100644
--- a/innobase/lock/lock0lock.c
+++ b/innobase/lock/lock0lock.c
@@ -3508,6 +3508,10 @@ lock_table_dequeue(
lock = UT_LIST_GET_NEXT(un_member.tab_lock.locks, in_lock);
lock_table_remove_low(in_lock);
+
+ if (lock_get_type(in_lock) == LOCK_TABLE_EXP) {
+ in_lock->trx->n_lock_table_exp--;
+ }
/* Check if waiting locks in the queue can now be granted: grant
locks if there are no conflicting locks ahead. */
@@ -3609,7 +3613,6 @@ lock_release_off_kernel(
if (lock_get_type(lock) == LOCK_TABLE_EXP) {
ut_a(lock_get_mode(lock) == LOCK_S
|| lock_get_mode(lock) == LOCK_X);
- trx->n_lock_table_exp--;
}
}
@@ -3676,7 +3679,6 @@ lock_release_tables_off_kernel(
}
lock_table_dequeue(lock);
- trx->n_lock_table_exp--;
lock = UT_LIST_GET_LAST(trx->trx_locks);
continue;