Class: Fairy::COutputVArray
Instance Attribute Summary collapse
Attributes included from CInputtable
#input
Instance Method Summary
collapse
Methods inherited from COutput
#input=
#break_running, #inputtable?
Methods inherited from CFilter
#abort_create_node, #add_node, #assgin_number_of_nodes?, #bind_export, #break_create_node, #break_running, #create_and_add_node, #create_import, #create_node, #create_nodes, #def_job_pool_variable, #each_assigned_filter, #each_export_by, #each_node, #each_node_exist_only, #handle_exception, #input, #job_pool_dict, #job_pool_variable, #nodes, #number_of_nodes, #pool_dict, #postmapping_policy, #start_create_nodes, #start_export, #start_watch_node_status, #update_status, watch_status, watch_status=, #watch_status?
Constructor Details
#initialize(controller, opts) ⇒ COutputVArray
Returns a new instance of COutputVArray.
14
15
16
17
18
19
|
# File 'lib/fairy/master/c-output-varray.rb', line 14
def initialize(controller, opts)
super
@varray = VArray.new(nil)
@node_id = 0
end
|
Instance Attribute Details
#varray ⇒ Object
Returns the value of attribute varray.
21
22
23
|
# File 'lib/fairy/master/c-output-varray.rb', line 21
def varray
@varray
end
|
Instance Method Details
#all_node_outputted? ⇒ Boolean
46
47
48
49
50
51
52
53
54
|
# File 'lib/fairy/master/c-output-varray.rb', line 46
def all_node_outputted?
return false unless @nodes_mutex.synchronize{@number_of_nodes}
each_node(:exist_only) do |node|
st = @nodes_status[node]
return false unless [:ST_FINISH, :ST_OUTPUT_FINISH].include?(st)
end
true
end
|
#njob_creation_params ⇒ Object
27
28
29
30
31
|
# File 'lib/fairy/master/c-output-varray.rb', line 27
def njob_creation_params
@node_id += 1
[@node_id-1]
end
|
#node_class_name ⇒ Object
23
24
25
|
# File 'lib/fairy/master/c-output-varray.rb', line 23
def node_class_name
"POutputVArray"
end
|
#number_of_nodes=(no_nodes) ⇒ Object
33
34
35
36
|
# File 'lib/fairy/master/c-output-varray.rb', line 33
def number_of_nodes=(no_nodes)
super
@varray.arrays_size = no_nodes
end
|
#wait_all_output_finished ⇒ Object
38
39
40
41
42
43
44
|
# File 'lib/fairy/master/c-output-varray.rb', line 38
def wait_all_output_finished
@nodes_status_mutex.synchronize do
while !all_node_outputted?
@nodes_status_cv.wait(@nodes_status_mutex)
end
end
end
|