docstr: Create a tornado application that hosts the results table over a
  websocket.
docstr_tok: ["Create","a","tornado","application","that","hosts","the","results","table","over","a","websocket","."]
code: def host_results(self):
      """Create a tornado application that hosts the results table over a
      websocket."""
      if self._table is None:
          return
      MANAGER = PerspectiveManager()
      MANAGER.host_table("benchmark_results", self._table)
      application = tornado.web.Application(
          [
              (r"/", BenchmarkTornadoHandler),
              # create a websocket endpoint that the client Javascript can access
              (
                  r"/websocket",
                  PerspectiveTornadoHandler,
                  {"manager": MANAGER, "check_origin": True},
              ),
          ]
      )
      self._HOSTING = True
      application.listen(8888)
      logging.warn("Displaying results at http://localhost:8888")
      loop = tornado.ioloop.IOLoop.current()
      loop.start()
  
imports: import logging
  import os
  import sys
  import signal
  import subprocess
  import venv
  import tornado
  from timeit import timeit
  from perspective import Table, PerspectiveManager, PerspectiveTornadoHandler
label_desc: Use image node_id 3 for calling the Runner obj's underlying member method code with example usage: obj.host_results() without return types