# File lib/mcollective/client.rb, line 238
    def start_receiver(requestid, waitfor, timeout, &block)
      Log.debug("Starting response receiver with timeout of #{timeout}")
      hosts_responded = 0
      begin
        Timeout.timeout(timeout) do
          begin
            resp = receive(requestid)
            yield resp.payload
            hosts_responded += 1
          end while (waitfor == 0 || hosts_responded < waitfor)
        end
      rescue Timeout::Error => e
        if (waitfor > hosts_responded)
          Log.warn("Could not receive all responses. Expected : #{waitfor}. Received : #{hosts_responded}")
        end
      end

      hosts_responded
    end