Class: Async::Children

Inherits:
List
  • Object
show all
Defined in:
lib/async/node.rb

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

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

#initializeChildren

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.

Returns:

  • (Boolean)


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.

Returns:

  • (Boolean)


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.

Returns:

  • (Boolean)


25
26
27
# File 'lib/async/node.rb', line 25

def transients?
	@transient_count > 0
end