Method: NewRelic::Agent::Threading::BacktraceService#sample_thread

Defined in:
lib/new_relic/agent/threading/backtrace_service.rb

#sample_thread(thread) ⇒ Object

This method is expected to be called with @lock held.



226
227
228
229
230
231
232
233
234
235
# File 'lib/new_relic/agent/threading/backtrace_service.rb', line 226

def sample_thread(thread)
  bucket = AgentThread.bucket_thread(thread, @profile_agent_code)

  if need_backtrace?(bucket)
    timestamp = Process.clock_gettime(Process::CLOCK_REALTIME)
    backtrace = AgentThread.scrub_backtrace(thread, @profile_agent_code)
    aggregate_global_backtrace(backtrace, bucket, thread)
    buffer_backtrace_for_thread(thread, timestamp, backtrace, bucket)
  end
end