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.



17
18
19
20
# File 'lib/async/node.rb', line 17

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=.



43
44
45
46
47
48
49
# File 'lib/async/node.rb', line 43

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)


29
30
31
# File 'lib/async/node.rb', line 29

def finished?
	@size == @transient_count
end

#nil?Boolean

Whether the children is empty, preserved for compatibility.

Returns:

  • (Boolean)


34
35
36
# File 'lib/async/node.rb', line 34

def nil?
	empty?
end

#transients?Boolean

Some children may be marked as transient. Transient children do not prevent the parent from finishing.

Returns:

  • (Boolean)


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

def transients?
	@transient_count > 0
end