-
Type:
Task
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Extensions
-
None
-
Storage Engines - Foundations, Storage Engines - Persistence
-
4.176
-
None
-
None
Extract all extension-related queues and their associated locks from __wt_connection_impl (lines 918-937) into a new WT_CONN_EXTENSIONS structure. This includes collqh (collators), compqh (compressors), dsrcqh (data sources), encryptqh (encryptors) with encryptor_lock, pagelogqh (page logs) with page_log_lock, and storagesrcqh (storage sources) with storage_lock. Note: The locks themselves will remain in WT_CONN_LOCKS (from ticket 1.1), but this structure will hold the queue heads. Access will be via conn->extensions.<field>.
Files affected
- src/include/connection.h — Define WT_CONN_EXTENSIONS structure and replace individual queue fields
- src/conn/conn_api.c — Update extension registration/unregistration
- src/conn/conn_handle.c — Update extension initialization
- Any files that walk these extension lists
Definition of Done
- New WT_CONN_EXTENSIONS structure defined in connection.h containing all extension queues
- All extension queue fields removed from __wt_connection_impl and replaced with single extensions member
- All references updated from conn->collqh to conn->extensions.collqh, etc.
- Code compiles cleanly with no warnings
- All existing tests pass
- Grep confirms no stale references to old extension queue paths