summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/schema.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/include/schema.h b/src/include/schema.h
index 25c1baae60f..5d524534b39 100644
--- a/src/include/schema.h
+++ b/src/include/schema.h
@@ -125,12 +125,18 @@ struct __wt_table {
WT_CONNECTION_IMPL *__conn = S2C(session); \
int __handle_locked = \
F_ISSET(session, WT_SESSION_HANDLE_LIST_LOCKED);\
+ int __table_locked = \
+ F_ISSET(session, WT_SESSION_TABLE_LOCKED); \
int __schema_locked = \
F_ISSET(session, WT_SESSION_SCHEMA_LOCKED); \
if (__handle_locked) { \
F_CLR(session, WT_SESSION_HANDLE_LIST_LOCKED); \
__wt_spin_unlock(session, &__conn->dhandle_lock);\
} \
+ if (__table_locked) { \
+ F_CLR(session, WT_SESSION_TABLE_LOCKED); \
+ __wt_spin_unlock(session, &__conn->table_lock);\
+ } \
if (__schema_locked) { \
F_CLR(session, WT_SESSION_SCHEMA_LOCKED); \
__wt_spin_unlock(session, &__conn->schema_lock);\
@@ -140,6 +146,10 @@ struct __wt_table {
__wt_spin_lock(session, &__conn->schema_lock); \
F_SET(session, WT_SESSION_SCHEMA_LOCKED); \
} \
+ if (__table_locked) { \
+ __wt_spin_lock(session, &__conn->table_lock); \
+ F_SET(session, WT_SESSION_TABLE_LOCKED); \
+ } \
if (__handle_locked) { \
__wt_spin_lock(session, &__conn->dhandle_lock); \
F_SET(session, WT_SESSION_HANDLE_LIST_LOCKED); \