# File lib_core/rucy/messenger.rb, line 308
    def start_messengers(num_of_messengers, socket_queue, document, logger, access_log, factory, restart_signal=nil)
      messenger_list = Array.new
      num_of_messengers.times do
        messenger = factory.new(document, logger, access_log)
        messenger.timeout = self.timeout
        messenger.keep_alive = self.keep_alive
        messenger.max_requests = self.max_requests
        messenger.open(self)
        messenger_list.push(messenger)
      end

      messenger_thgrp = ThreadGroup.new
      if (restart_signal) then
        thread = Thread.new{
          restart_signal.wait
        }
        messenger_thgrp.add(thread)
      end

      messenger_list.each do |messenger|
        thread = Thread.new{
          logger.info("[#{Time.now.httpdate}] start #{factory} thread.")
          begin
            messenger.accept(socket_queue)
          rescue StandardError, ScriptError
            logger.warning("[#{Time.now.httpdate}] aborted #{factory} thread: #{$!.message} (#{$!.class}): #{$!.backtrace[0]}")
          ensure
            logger.info("[#{Time.now.httpdate}] stop #{factory} thread.")
          end
        }
        messenger_thgrp.add(thread)
      end

      messenger_thgrp
    end