Class: Concurrent::LockFreeQueue::Node
- Inherits:
-
Synchronization::Object
- Object
- Synchronization::AbstractObject
- Synchronization::Object
- Concurrent::LockFreeQueue::Node
- Defined in:
- lib/concurrent-ruby-edge/concurrent/edge/lock_free_queue.rb
Instance Method Summary collapse
-
#compare_and_set_successor(expected_successor, new_successor) ⇒ true, false
Sets the successor to new_successor if the current successor is expected_successor.
-
#initialize(item, successor) ⇒ Node
constructor
A new instance of Node.
- #item ⇒ undocumented
-
#successor ⇒ Object
The successor.
-
#successor=(new_successor) ⇒ Object
Set the successor.
-
#swap_successor(new_successor) ⇒ Object
Set the successor to new_successor and return the old successor.
-
#update_successor {|Object| ... } ⇒ Object
Updates the successor using the block.
Constructor Details
#initialize(item, successor) ⇒ Node
Returns a new instance of Node.
11 12 13 14 15 16 |
# File 'lib/concurrent-ruby-edge/concurrent/edge/lock_free_queue.rb', line 11 def initialize(item, successor) super() # published through queue, no need to be volatile or final @Item = item self.successor = successor end |
Instance Method Details
#compare_and_set_successor(expected_successor, new_successor) ⇒ true, false
Sets the successor to new_successor if the current successor is expected_successor
9 |
# File 'lib/concurrent-ruby-edge/concurrent/edge/lock_free_queue.rb', line 9 attr_atomic :successor |
#item ⇒ undocumented
18 19 20 |
# File 'lib/concurrent-ruby-edge/concurrent/edge/lock_free_queue.rb', line 18 def item @Item end |
#successor ⇒ Object
Returns The successor.
9 |
# File 'lib/concurrent-ruby-edge/concurrent/edge/lock_free_queue.rb', line 9 attr_atomic :successor |
#successor=(new_successor) ⇒ Object
Set the successor.
9 |
# File 'lib/concurrent-ruby-edge/concurrent/edge/lock_free_queue.rb', line 9 attr_atomic :successor |
#swap_successor(new_successor) ⇒ Object
Set the successor to new_successor and return the old successor.
9 |
# File 'lib/concurrent-ruby-edge/concurrent/edge/lock_free_queue.rb', line 9 attr_atomic :successor |
#update_successor {|Object| ... } ⇒ Object
Updates the successor using the block.
9 |
# File 'lib/concurrent-ruby-edge/concurrent/edge/lock_free_queue.rb', line 9 attr_atomic :successor |