lib/datadog/tracing/workers.rb in ddtrace-1.14.0 vs lib/datadog/tracing/workers.rb in ddtrace-1.15.0
- old
+ new
@@ -12,11 +12,11 @@
DEFAULT_BUFFER_MAX_SIZE = 1000
DEFAULT_FLUSH_INTERVAL = 1
DEFAULT_TIMEOUT = 5
BACK_OFF_RATIO = 1.2
BACK_OFF_MAX = 5
- SHUTDOWN_TIMEOUT = 1
+ DEFAULT_SHUTDOWN_TIMEOUT = 1
attr_reader \
:trace_buffer
def initialize(options = {})
@@ -34,10 +34,11 @@
buffer_size = options.fetch(:buffer_size, DEFAULT_BUFFER_MAX_SIZE)
@trace_buffer = TraceBuffer.new(buffer_size)
# Threading
@shutdown = ConditionVariable.new
+ @shutdown_timeout = options.fetch(:shutdown_timeout, DEFAULT_SHUTDOWN_TIMEOUT)
@mutex = Mutex.new
@worker = nil
@run = false
end
@@ -87,10 +88,10 @@
true
end
# Block until executor shutdown is complete or until timeout seconds have passed.
def join
- @worker.join(SHUTDOWN_TIMEOUT)
+ @worker.join(@shutdown_timeout)
end
# Enqueue an item in the trace internal buffer. This operation is thread-safe
# because uses the +TraceBuffer+ data structure.
def enqueue_trace(trace)