summaryrefslogtreecommitdiff
path: root/src/mongo/db/cursor_manager.h
diff options
context:
space:
mode:
authorCharlie Swanson <charlie.swanson@mongodb.com>2018-04-30 12:54:34 -0400
committerCharlie Swanson <charlie.swanson@mongodb.com>2018-05-15 09:22:58 -0400
commitfa9278c892a6833694983191a5726b20f6a187a0 (patch)
tree3ef2ffc47c32a962d04507c127d2487485317041 /src/mongo/db/cursor_manager.h
parenta9ba9539c5042911f030a1d4b3e4ce8ff0a449fc (diff)
downloadmongo-fa9278c892a6833694983191a5726b20f6a187a0.tar.gz
SERVER-33959 Avoid deadlock during global cursor registration
Diffstat (limited to 'src/mongo/db/cursor_manager.h')
-rw-r--r--src/mongo/db/cursor_manager.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/cursor_manager.h b/src/mongo/db/cursor_manager.h
index 2104a558bae..6817455ec0d 100644
--- a/src/mongo/db/cursor_manager.h
+++ b/src/mongo/db/cursor_manager.h
@@ -292,8 +292,13 @@ private:
OperationContext* opCtx, std::unique_ptr<ClientCursor, ClientCursor::Deleter> clientCursor);
void deregisterCursor(ClientCursor* cursor);
+ void deregisterAndDestroyCursor(
+ Partitioned<stdx::unordered_map<CursorId, ClientCursor*>, kNumPartitions>::OnePartition&&,
+ OperationContext* opCtx,
+ std::unique_ptr<ClientCursor, ClientCursor::Deleter> cursor);
- void unpin(OperationContext* opCtx, ClientCursor* cursor);
+ void unpin(OperationContext* opCtx,
+ std::unique_ptr<ClientCursor, ClientCursor::Deleter> cursor);
bool cursorShouldTimeout_inlock(const ClientCursor* cursor, Date_t now);