Skip to content

Commit

Permalink
Merge pull request #2505 from wiredtiger/wt-2411
Browse files Browse the repository at this point in the history
WT-2411 Drop the checkpoint lock when LSM is draining its queue.
  • Loading branch information
michaelcahill committed Feb 19, 2016
2 parents 7a6125e + 93dac5e commit 2b78ad8
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions src/include/schema.h
Expand Up @@ -174,6 +174,8 @@ struct __wt_table {
*/
#define WT_WITHOUT_LOCKS(session, op) do { \
WT_CONNECTION_IMPL *__conn = S2C(session); \
bool __checkpoint_locked = \
F_ISSET(session, WT_SESSION_LOCKED_CHECKPOINT); \
bool __handle_locked = \
F_ISSET(session, WT_SESSION_LOCKED_HANDLE_LIST); \
bool __table_locked = \
Expand All @@ -192,7 +194,15 @@ struct __wt_table {
F_CLR(session, WT_SESSION_LOCKED_SCHEMA); \
__wt_spin_unlock(session, &__conn->schema_lock); \
} \
if (__checkpoint_locked) { \
F_CLR(session, WT_SESSION_LOCKED_CHECKPOINT); \
__wt_spin_unlock(session, &__conn->checkpoint_lock); \
} \
op; \
if (__checkpoint_locked) { \
__wt_spin_lock(session, &__conn->checkpoint_lock); \
F_SET(session, WT_SESSION_LOCKED_CHECKPOINT); \
} \
if (__schema_locked) { \
__wt_spin_lock(session, &__conn->schema_lock); \
F_SET(session, WT_SESSION_LOCKED_SCHEMA); \
Expand Down

0 comments on commit 2b78ad8

Please sign in to comment.