Internal (routing) node holding separator keys and child pointers.
Synopsis
Declared in <folly/ConcurrentBSkipList‐detail.h>
template<typename Traits>
class BSkipNodeInternal
: public BSkipNode<Traits>
Base Classes
Name |
Description |
Common base of leaf and internal nodes: next pointer, seqlock, and mutex. |
Types
Name |
Description |
Result of an internal node child search. |
Type Aliases
Name |
Description |
Array of separator key slots. |
|
The key slot storage type. |
|
The seqlock type used to bracket concurrent access. |
|
The key type. |
Member Functions
Name |
Description |
|
Constructs an internal node and registers its arrays with the thread sanitizer. |
Finds the child to descend into for a search key. |
|
Shifts children right and writes a child pointer at the given slot. |
|
Shifts separator keys right and writes a key at the given slot. |
|
Loads the minimum key of the successor node. |
|
Returns this node's minimum routing key. |
|
Moves the tail of this node's keys and children into a destination 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 |
Concurrent B‐skip‐list container; declared here for friend declarations. |
Template Parameters
Name |
Description |
Traits |
The InternalTraits for the list. |
Created with MrDocs