Class: Dynflow::Actor::BacktraceCollector

Inherits:
Object
  • Object
show all
Defined in:
lib/dynflow/actor.rb

Constant Summary collapse

CONCURRENT_RUBY_LINE =
'[ concurrent-ruby ]'
SIDEKIQ_LINE =
'[ sidekiq ]'

Class Method Summary collapse

Class Method Details

.current_actor_backtraceObject



74
75
76
# File 'lib/dynflow/actor.rb', line 74

def current_actor_backtrace
  Thread.current[:_dynflow_actor_backtrace] || []
end

.full_backtrace(backtrace) ⇒ Object



78
79
80
# File 'lib/dynflow/actor.rb', line 78

def full_backtrace(backtrace)
  filter_backtrace((backtrace || []) + current_actor_backtrace)
end

.with_backtrace(backtrace) ⇒ Object



66
67
68
69
70
71
72
# File 'lib/dynflow/actor.rb', line 66

def with_backtrace(backtrace)
  previous_actor_backtrace = Thread.current[:_dynflow_actor_backtrace]
  Thread.current[:_dynflow_actor_backtrace] = backtrace
  yield
ensure
  Thread.current[:_dynflow_actor_backtrace] = previous_actor_backtrace
end