Class: Fairy::CBarrier::CBarrierMemoryBuffer
Instance Attribute Summary
#input
#input
Instance Method Summary
collapse
Methods included from Factory
#create, extended, #init_fact, #register_mode
#node_class, #output=
#break_running, #inputtable?
#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, #njob_creation_params, #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(bbarrier, mode, opts = nil) ⇒ CBarrierMemoryBuffer
Returns a new instance of CBarrierMemoryBuffer.
212
213
214
|
# File 'lib/fairy/master/c-barrier.rb', line 212
def initialize(bbarrier, mode, opts=nil)
super(bbarrier, mode, bbarrier.instance_eval{@controller}, opts)
end
|
Instance Method Details
#all_data_imported? ⇒ Boolean
229
230
231
232
233
234
235
236
|
# File 'lib/fairy/master/c-barrier.rb', line 229
def all_data_imported?
@nodes_status_mutex.synchronize do
while !all_node_data_imported?
@nodes_status_cv.wait(@nodes_status_mutex)
end
end
true
end
|
#all_node_data_arrived? ⇒ Boolean
246
247
248
249
250
251
252
253
254
255
|
# File 'lib/fairy/master/c-barrier.rb', line 246
def all_node_data_arrived?
return false unless @number_of_nodes
data_arrived = true
each_node(:exist_only) do |node|
st = @nodes_status[node]
data_arrived &&= [:ST_ACTIVATE, :ST_ALL_IMPORTED, :ST_FINISH, :ST_EXPORT_FINISH, :ST_WAIT_EXPORT_FINISH].include?(st)
end
data_arrived
end
|
#all_node_data_imported? ⇒ Boolean
257
258
259
260
261
262
263
264
265
266
267
|
# File 'lib/fairy/master/c-barrier.rb', line 257
def all_node_data_imported?
return false unless @number_of_nodes
all_data_imported = true
each_node(:exist_only) do |node|
st = @nodes_status[node]
s = [:ST_ALL_IMPORTED, :ST_FINISH, :ST_EXPORT_FINISH, :ST_WAIT_EXPORT_FINISH].include?(st)
all_data_imported &&= [:ST_ALL_IMPORTED, :ST_FINISH, :ST_EXPORT_FINISH, :ST_WAIT_EXPORT_FINISH].include?(st)
end
all_data_imported
end
|
#data_arrived? ⇒ Boolean
220
221
222
223
224
225
226
227
|
# File 'lib/fairy/master/c-barrier.rb', line 220
def data_arrived?
@nodes_status_mutex.synchronize do
while !all_node_data_arrived?
@nodes_status_cv.wait(@nodes_status_mutex)
end
end
true
end
|
#node_arrived? ⇒ Boolean
216
217
218
|
# File 'lib/fairy/master/c-barrier.rb', line 216
def node_arrived?
number_of_nodes
end
|
#node_class_name ⇒ Object
238
239
240
|
# File 'lib/fairy/master/c-barrier.rb', line 238
def node_class_name
"PBarrierMemoryBuffer"
end
|
#wait_export ⇒ Object
242
243
244
|
# File 'lib/fairy/master/c-barrier.rb', line 242
def wait_export
@bbarrier.wait_export
end
|