Sha256: d81395e0e31f2d4810cf632d6a489f54f9270f064673f9f6ddf8d3c5b78a2fca

Contents?: true

Size: 580 Bytes

Versions: 27

Compression:

Stored size: 580 Bytes

Contents

module Eventboss
  # SafeThread includes thread handling with automatic error reporting
  module SafeThread
    def safe_thread(name)
      Thread.new do
        begin
          Thread.current[:ah_eventboss_label] = name
          yield
        rescue Exception => exception
          handle_exception(exception, name: name)
          raise exception
        end
      end
    end

    def handle_exception(exception, context)
      context.freeze
      Eventboss.configuration.error_handlers.each do |handler|
        handler.call(exception, context)
      end
    end
  end
end

Version data entries

27 entries across 27 versions & 1 rubygems

Version Path
eventboss-1.9.2 lib/eventboss/safe_thread.rb
eventboss-1.9.1 lib/eventboss/safe_thread.rb
eventboss-1.9.0 lib/eventboss/safe_thread.rb
eventboss-1.8.1 lib/eventboss/safe_thread.rb
eventboss-1.8.0 lib/eventboss/safe_thread.rb
eventboss-1.7.0 lib/eventboss/safe_thread.rb
eventboss-1.5.0 lib/eventboss/safe_thread.rb
eventboss-1.4.1 lib/eventboss/safe_thread.rb
eventboss-1.3.5 lib/eventboss/safe_thread.rb
eventboss-1.3.4 lib/eventboss/safe_thread.rb
eventboss-1.3.3 lib/eventboss/safe_thread.rb
eventboss-1.3.2 lib/eventboss/safe_thread.rb
eventboss-1.3.1 lib/eventboss/safe_thread.rb
eventboss-1.3.0 lib/eventboss/safe_thread.rb
eventboss-1.2.1 lib/eventboss/safe_thread.rb
eventboss-1.2.0 lib/eventboss/safe_thread.rb
eventboss-1.1.3 lib/eventboss/safe_thread.rb
eventboss-1.1.2 lib/eventboss/safe_thread.rb
eventboss-1.1.1 lib/eventboss/safe_thread.rb
eventboss-1.1.0 lib/eventboss/safe_thread.rb