Class: Async::Children
Overview
A list of children tasks.
Instance Attribute Summary
Attributes inherited from List
#The number of nodes in the list., #head, #size, #tail
Instance Method Summary collapse
-
#adjust_transient_count(transient) ⇒ Object
Adjust the number of transient children, assuming it has changed.
-
#finished? ⇒ Boolean
Whether all children are considered finished.
-
#initialize ⇒ Children
constructor
Create an empty list of children tasks.
-
#nil? ⇒ Boolean
Whether the children is empty, preserved for compatibility.
-
#transients? ⇒ Boolean
Some children may be marked as transient.
Methods inherited from List
#Points at the end of the list.=, #Points at the start of the list.=, #append, #each, #empty?, #first, #include?, #last, #prepend, #remove, #remove?, #shift, #stack, #to_a, #to_s
Constructor Details
#initialize ⇒ Children
Create an empty list of children tasks.
18 19 20 21 |
# File 'lib/async/node.rb', line 18 def initialize super @transient_count = 0 end |
Instance Method Details
#adjust_transient_count(transient) ⇒ Object
Adjust the number of transient children, assuming it has changed.
Despite being public, this is not intended to be called directly. It is used internally by Node#transient=.
44 45 46 47 48 49 50 |
# File 'lib/async/node.rb', line 44 def adjust_transient_count(transient) if transient @transient_count += 1 else @transient_count -= 1 end end |
#finished? ⇒ Boolean
Whether all children are considered finished. Ignores transient children.
30 31 32 |
# File 'lib/async/node.rb', line 30 def finished? @size == @transient_count end |
#nil? ⇒ Boolean
Whether the children is empty, preserved for compatibility.
35 36 37 |
# File 'lib/async/node.rb', line 35 def nil? empty? end |
#transients? ⇒ Boolean
Some children may be marked as transient. Transient children do not prevent the parent from finishing.
25 26 27 |
# File 'lib/async/node.rb', line 25 def transients? @transient_count > 0 end |