lib/drbqs/queue.rb in drbqs-0.0.5 vs lib/drbqs/queue.rb in drbqs-0.0.6

- old
+ new

@@ -1,28 +1,7 @@ module DRbQS - class Task - attr_reader :hook - def initialize(obj, method_sym, args = [], &hook) - begin - @marshal_obj = Marshal.dump(obj) - rescue - raise "Can not dump an instance of #{obj.class}." - end - unless Array === args - raise "Arguments of task must be an array." - end - @method_sym = method_sym.intern - @args = args - @hook = hook - end - - def drb_args(task_id) - [task_id, @marshal_obj, @method_sym, @args] - end - end - class QueueServer def initialize(queue, result, logger = nil) @queue = queue @result = result @@ -36,14 +15,16 @@ @queue.write(@cache[task_id].drb_args(task_id)) end private :queue_task # &hook take two arguments: a QueueServer object and a result of task. + # Return task ID (for debug). def add(task) @task_id += 1 @logger.info("New task: #{@task_id}") if @logger @cache[@task_id] = task queue_task(@task_id) + @task_id end def get_accept_signal count = 0 begin