Common base of leaf and internal nodes: next pointer, seqlock, and mutex.
Synopsis
Declared in <folly/ConcurrentBSkipList‐detail.h>
template<typename Traits>
struct BSkipNode;
Type Aliases
Name |
Description |
The key slot storage type. |
|
The seqlock type used to bracket concurrent access. |
|
The key type. |
Member Functions
Name |
Description |
|
Constructs a node and registers its fields with the thread sanitizer. |
Loads the minimum key of the successor node. |
Protected Member Functions
Name |
Description |
Registers the node's shared fields with the thread sanitizer as benign races. |
Protected Data Members
Name |
Description |
Node level; set once at allocation and immutable thereafter. |
|
Shared/exclusive mutex guarding locked‐path access. |
|
Cached minimum key of the successor node. |
|
Pointer to the next node at this level; readers pair load(acquire) with the release in publishSplitSibling. |
|
Number of live elements in this node. |
|
Seqlock bracketing optimistic reads of this node. |
Friends
Name |
Description |
RAII read guard that starts optimistic and escalates to the shared lock when a writer is in flight. |
|
Concurrent B‐skip‐list container; declared here for friend declarations. |
Derived Classes
Name |
Description |
Internal (routing) node holding separator keys and child pointers. |
|
Leaf node holding sorted keys, optional payloads, and tombstone bits. |
Template Parameters
Name |
Description |
Traits |
The InternalTraits for the list. |
Created with MrDocs