module Pwrake::TaskAlgorithm
Attributes
arguments[R]
property[R]
subsequents[R]
unfinished_prereq[R]
Public Instance Methods
check_prereq_finished(preq_name=nil)
click to toggle source
# File lib/pwrake/task/task_algorithm.rb, line 97 def check_prereq_finished(preq_name=nil) @unfinished_prereq.delete(preq_name) !@already_finished && @unfinished_prereq.empty? end
pw_enq_subsequents()
click to toggle source
# File lib/pwrake/task/task_algorithm.rb, line 87 def pw_enq_subsequents # not synchronize owing to fiber @subsequents.each do |t| # <<--- competition !!! if t && t.check_prereq_finished(self.name) application.task_queue.enq(t.wrapper) end end @already_finished = true # <<--- competition !!! end
pw_search_tasks(args)
click to toggle source
# File lib/pwrake/task/task_algorithm.rb, line 21 def pw_search_tasks(args) Log.debug "#{self.class}[#{name}]#pw_search_tasks start, args=#{args.inspect}" if application.options.trace application.trace "** Search #{name}#{format_search_flags}" end cl = Pwrake.clock TaskWrapper.clear_rank task_args = TaskArguments.new(arg_names, args) # not synchronize owing to fiber search_with_call_chain(nil, task_args, InvocationChain::EMPTY) # Log.debug "#{self.class}[#{name}]#pw_search_tasks end t=%.6f" % (Pwrake.clock-cl) end
pw_set_property(property)
click to toggle source
# File lib/pwrake/task/task_algorithm.rb, line 102 def pw_set_property(property) if @property @property.merge(property) else @property = property end self end
wrapper()
click to toggle source
# File lib/pwrake/task/task_algorithm.rb, line 13 def wrapper if @wrapper.nil? Log.debug "TaskWrapper is not defined for #{self.class}[#{name}]" @wrapper = TaskWrapper.new(self) end @wrapper end
Private Instance Methods
format_search_flags()
click to toggle source
Format the trace flags for display.
# File lib/pwrake/task/task_algorithm.rb, line 78 def format_search_flags flags = [] flags << "finished" if @already_finished flags << "first_time" unless @already_searched flags << "not_needed" unless needed? flags.empty? ? "" : " (" + flags.join(", ") + ")" end