# File lib/generator.rb, line 107
  def end?
    if @queue.empty?
      if @main_thread
        raise "should not be called in Generator.new{|g| ... }"
      end
      Thread.critical = true
      begin
        @main_thread = Thread.current
        @loop_thread.wakeup
        Thread.stop
      rescue ThreadError
        # ignore
      ensure
        @main_thread = nil
        Thread.critical = false
      end
    end
    @queue.empty?
  end