21: def initialize(options)
22: @options = options
23: @work_queue = Queue.new
24: @result_queue = Queue.new
25:
26: if Metrics::Gatherer.enabled?
27: require File.dirname(__FILE__) + "/metrics/queue_lock_wait_time_measurement"
28: @work_queue.extend Metrics::QueueLockWaitTimeMeasurement
29: @result_queue.extend Metrics::QueueLockWaitTimeMeasurement
30: Metrics::Gatherer.section("server queue lock wait times") do |s|
31: s.measurement("work queue total pop wait time", @work_queue.total_pop_time)
32: s.measurement("work queue total push wait time", @work_queue.total_push_time)
33: s.measurement("result queue total pop wait time", @result_queue.total_pop_time)
34: s.measurement("result queue total push wait time", @result_queue.total_push_time)
35: end
36: end
37: end