Class: Fairy::CCat
Defined Under Namespace
Classes: CPreCat
Instance Attribute Summary
Attributes inherited from CIOFilter
#input
Attributes included from CInputtable
#input
Instance Method Summary
collapse
Methods inherited from CIOFilter
#node_class, #output=
#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, #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, #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, others) ⇒ CCat
Returns a new instance of CCat.
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/fairy/master/c-cat.rb', line 20
def initialize(controller, opts, others)
super
@others = others
@export_node_pairs_queues = nil
@export_node_pairs_queues_mutex = Mutex.new
@export_node_pairs_queues_cv = XThread::ConditionVariable.new
@main_precat = CPreCat.new(controller, opts)
@others_precat = @others.map{|o|
precat = CPreCat.new(controller, opts)
precat.input = o
precat
}
end
|
Instance Method Details
#create_nodes ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/fairy/master/c-cat.rb', line 51
def create_nodes
begin
no = 0
[@main_precat, *@others_precat].each do |input|
@input = input
input.output = @input
@controller.assign_ntasks(self, @create_node_mutex) do
|ntask, mapper, opts={}|
njob = create_node(ntask) {|node|
if opts[:init_njob]
opts[:init_njob].call(node)
end
mapper.bind_input(node)
node.no = no
}
no += 1
njob
end
end
rescue BreakCreateNode
Log::debug self, "BREAK CREATE NODE: #{self}"
rescue AbortCreateNode
Log::debug self, "Abort CREATE NODE: #{self}"
rescue ERR::NodeNotArrived
Log::debug self, "NODE NOT ARRIVED: #{file}"
begin
handle_exception($!)
rescue
Log::debug_exception(self)
end
Log::debug self, "NODE NOT ARRIVED2: #{file}"
raise
rescue ERR::CantExecSubcmd
begin
handle_exception($!)
rescue
Log::debug_exception(self)
end
Log::debug self, "CANT EXEC SUBCOMMAND: #{self}"
raise
rescue ERR::CantExecSubcmd
begin
handle_exception($!)
rescue
Log::debug_exception(self)
end
Log::debug self, "CANT EXEC SUBCOMMAND: #{self}"
raise
rescue Exception
Log::warn_exception(self)
raise
ensure
Log::debug self, "CREATE_NODES: #{self}.number_of_nodes=#{no}"
add_node(nil)
self.number_of_nodes = no
end
end
|
45
46
47
48
49
|
# File 'lib/fairy/master/c-cat.rb', line 45
def input=(input)
@main_precat.input = input
start_create_nodes
end
|
#njob_creation_params ⇒ Object
41
42
43
|
# File 'lib/fairy/master/c-cat.rb', line 41
def njob_creation_params
[]
end
|
#node_class_name ⇒ Object
37
38
39
|
# File 'lib/fairy/master/c-cat.rb', line 37
def node_class_name
"PIdentity"
end
|