# File lib/deep_test/server.rb, line 21 def initialize(options) @options = options @work_queue = Queue.new @result_queue = Queue.new if Metrics::Gatherer.enabled? require File.dirname(__FILE__) + "/metrics/queue_lock_wait_time_measurement" @work_queue.extend Metrics::QueueLockWaitTimeMeasurement @result_queue.extend Metrics::QueueLockWaitTimeMeasurement Metrics::Gatherer.section("server queue lock wait times") do |s| s.measurement("work queue total pop wait time", @work_queue.total_pop_time) s.measurement("work queue total push wait time", @work_queue.total_push_time) s.measurement("result queue total pop wait time", @result_queue.total_pop_time) s.measurement("result queue total push wait time", @result_queue.total_push_time) end end end
# File lib/deep_test/server.rb, line 14 def self.remote_reference(address, port) DRb.start_service blackboard = DRbObject.new_with_uri("druby://#{address}:#{port}") DeepTest.logger.debug "Connecting to DeepTest server at #{blackboard.__drburi}" blackboard end
# File lib/deep_test/server.rb, line 39 def done_with_work @done_with_work = true end
# File lib/deep_test/server.rb, line 43 def take_result Timeout.timeout(@options.timeout_in_seconds, ResultOverdueError) do @result_queue.pop end end
# File lib/deep_test/server.rb, line 49 def take_work raise NoWorkUnitsRemainingError if @done_with_work @work_queue.pop(true) rescue ThreadError => e if e.message == "queue empty" raise NoWorkUnitsAvailableError else raise end end
Generated with the Darkfish Rdoc Generator 2.