# File lib/brb/tunnel/shared.rb, line 127
      def recv(key, nb_out)
        begin
          @replock.lock
          r = @responses[key] ||= Queue.new
          @replock.unlock
          while rep = r.pop
            if rep[1] == nb_out # On check ke c'est bien la réponse que l'on attend
              
              # Call the callback
              if block_given?
                yield(rep[0])
              end

              return rep[0]
            end
            if rep[1] > nb_out
              return nil
            end
          end
        rescue Exception => e
          if @close_after_timeout == true
            stop_service
            sleep 1
            raise e
          else
            raise e
          end
        end
      end