Class: Concurrent::Edge::LockFreeLinkedSet::Tail

Inherits:
Node
  • Object
show all
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

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