class Honeybadger::Worker

def run

def run
  begin
    d { "worker started" }
    loop do
      case msg = queue.pop
      when SHUTDOWN then break
      when ConditionVariable then signal_marker(msg)
      else work(msg)
      end
    end
  ensure
    d { "stopping worker" }
  end
rescue => e
  error {
    msg = "Error in worker thread (shutting down) class=%s message=%s\n\t%s"
    sprintf(msg, e.class, e.message.dump, Array(e.backtrace).join("\n\t"))
  }
ensure
  release_marker
end