diff --git a/lib/datadog/core/telemetry/worker.rb b/lib/datadog/core/telemetry/worker.rb index f19a324704a..4ab562a99d6 100644 --- a/lib/datadog/core/telemetry/worker.rb +++ b/lib/datadog/core/telemetry/worker.rb @@ -52,8 +52,6 @@ def start def stop(force_stop = false, timeout = @shutdown_timeout) buffer.close if running? - flush_events(dequeue) if work_pending? - super end @@ -136,6 +134,10 @@ def dequeue buffer.pop end + def work_pending? + run_loop? || !buffer.empty? + end + def buffer_klass if Core::Environment::Ext::RUBY_ENGINE == 'ruby' Core::Buffer::CRuby diff --git a/spec/datadog/core/telemetry/worker_spec.rb b/spec/datadog/core/telemetry/worker_spec.rb index e73fec0888e..bc88ad63b38 100644 --- a/spec/datadog/core/telemetry/worker_spec.rb +++ b/spec/datadog/core/telemetry/worker_spec.rb @@ -275,6 +275,8 @@ worker.start expect(worker).to receive(:flush_events).at_least(:once) + + worker.enqueue(Datadog::Core::Telemetry::Event::AppIntegrationsChange.new) worker.stop(true) end end