module Bullet

def start_request

def start_request
  Thread.current.thread_variable_set(:bullet_start, true)
  Thread.current.thread_variable_set(:bullet_notification_collector, Bullet::NotificationCollector.new)
  Thread.current.thread_variable_set(:bullet_object_associations, Bullet::Registry::Base.new)
  Thread.current.thread_variable_set(:bullet_call_object_associations, Bullet::Registry::Base.new)
  Thread.current.thread_variable_set(:bullet_possible_objects, Bullet::Registry::Object.new)
  Thread.current.thread_variable_set(:bullet_impossible_objects, Bullet::Registry::Object.new)
  Thread.current.thread_variable_set(:bullet_inversed_objects, Bullet::Registry::Base.new)
  Thread.current.thread_variable_set(:bullet_eager_loadings, Bullet::Registry::Association.new)
  Thread.current.thread_variable_set(:bullet_call_stacks, Bullet::Registry::CallStack.new)
  unless Thread.current.thread_variable_get(:bullet_counter_possible_objects)
    Thread.current.thread_variable_set(:bullet_counter_possible_objects, Bullet::Registry::Object.new)
  end
  unless Thread.current.thread_variable_get(:bullet_counter_impossible_objects)
    Thread.current.thread_variable_set(:bullet_counter_impossible_objects, Bullet::Registry::Object.new)
  end
end