Class: Concurrent::Edge::LockFreeLinkedSet::Tail
- Inherits:
-
Node
- Object
- Synchronization::Object
- Node
- Concurrent::Edge::LockFreeLinkedSet::Tail
- Defined in:
- lib/concurrent-ruby-edge/concurrent/edge/lock_free_linked_set/node.rb
Overview
Internal sentinel node for the Tail. It is always greater than all other nodes, and it is self-referential; meaning its successor is a self-loop.
Instance Method Summary collapse
-
#<=>(_other) ⇒ Object
Always greater than other nodes.
-
#initialize(_data = nil, _succ = nil) ⇒ Tail
constructor
A new instance of Tail.
Methods inherited from Node
#data, #key, #key_for, #last?, #next_node, #successor_reference
Constructor Details
#initialize(_data = nil, _succ = nil) ⇒ Tail
Returns a new instance of Tail.
60 61 62 |
# File 'lib/concurrent-ruby-edge/concurrent/edge/lock_free_linked_set/node.rb', line 60 def initialize(_data = nil, _succ = nil) @SuccessorReference = AtomicMarkableReference.new self end |
Instance Method Details
#<=>(_other) ⇒ Object
Always greater than other nodes. This means that traversal will end at the tail node since we are comparing node size in the traversal.
66 67 68 |
# File 'lib/concurrent-ruby-edge/concurrent/edge/lock_free_linked_set/node.rb', line 66 def <=>(_other) 1 end |