summaryrefslogtreecommitdiff
path: root/src/include/session.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/session.h')
-rw-r--r--src/include/session.h20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/include/session.h b/src/include/session.h
index 5c3291230b4..7fdb7fc2548 100644
--- a/src/include/session.h
+++ b/src/include/session.h
@@ -126,14 +126,24 @@ struct WT_COMPILER_TYPE_ALIGN(WT_CACHE_LINE_ALIGNMENT) __wt_session_impl {
void *block_manager; /* Block-manager support */
int (*block_manager_cleanup)(WT_SESSION_IMPL *);
- /* Checkpoint support */
- struct {
- WT_DATA_HANDLE *dhandle;
- const char *name;
- } *ckpt_handle; /* Handle list */
+ /* Checkpoint handles */
+ WT_DATA_HANDLE **ckpt_handle; /* Handle list */
u_int ckpt_handle_next; /* Next empty slot */
size_t ckpt_handle_allocated; /* Bytes allocated */
+ /*
+ * Operations acting on handles.
+ *
+ * The preferred pattern is to gather all of the required handles at
+ * the beginning of an operation, then drop any other locks, perform
+ * the operation, then release the handles. This cannot be easily
+ * merged with the list of checkpoint handles because some operations
+ * (such as compact) do checkpoints internally.
+ */
+ WT_DATA_HANDLE **op_handle; /* Handle list */
+ u_int op_handle_next; /* Next empty slot */
+ size_t op_handle_allocated; /* Bytes allocated */
+
void *reconcile; /* Reconciliation support */
int (*reconcile_cleanup)(WT_SESSION_IMPL *);