diff options
author | Charlie Swanson <charlie.swanson@mongodb.com> | 2018-04-30 12:54:34 -0400 |
---|---|---|
committer | Charlie Swanson <charlie.swanson@mongodb.com> | 2018-05-15 09:22:58 -0400 |
commit | fa9278c892a6833694983191a5726b20f6a187a0 (patch) | |
tree | 3ef2ffc47c32a962d04507c127d2487485317041 /src/mongo/db/cursor_manager.h | |
parent | a9ba9539c5042911f030a1d4b3e4ce8ff0a449fc (diff) | |
download | mongo-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.h | 7 |
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); |