Class: Fairy::CBarrier::CBarrierMemoryBuffer

Inherits:
CBarrierBuffer show all
Defined in:
lib/fairy/master/c-barrier.rb

Instance Attribute Summary

Attributes inherited from Fairy::CIOFilter

#input

Attributes included from Fairy::CInputtable

#input

Instance Method Summary collapse

Methods included from Factory

#create, extended, #init_fact, #register_mode

Methods inherited from Fairy::CIOFilter

#node_class, #output=

Methods included from Fairy::CInputtable

#break_running, #inputtable?

Methods inherited from Fairy::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, #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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (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

Returns:

  • (Boolean)


216
217
218
# File 'lib/fairy/master/c-barrier.rb', line 216

def node_arrived?
	number_of_nodes
end

#node_class_nameObject



238
239
240
# File 'lib/fairy/master/c-barrier.rb', line 238

def node_class_name
	"PBarrierMemoryBuffer"
end

#wait_exportObject



242
243
244
# File 'lib/fairy/master/c-barrier.rb', line 242

def wait_export
	@bbarrier.wait_export
end