code: def perspective_thread(manager, table):
      """Perspective application thread starts its own tornado IOLoop, and
      adds the table with the name "data_source_one", which will be used
      in the front-end."""
      psp_loop = tornado.ioloop.IOLoop()
      manager.host_table("data_source_one", table)
      if IS_MULTI_THREADED:
          with concurrent.futures.ThreadPoolExecutor() as executor:
              manager.set_loop_callback(
                  psp_loop.run_in_executor, executor
              )
              psp_loop.start()
      else:
          manager.set_loop_callback(psp_loop.add_callback)
          psp_loop.start()
  
file_path: perspective/examples/python-tornado/server.py
imports: import os
  import os.path
  import logging
  import tornado.websocket
  import tornado.web
  import tornado.ioloop
  import threading
  import concurrent.futures
  from perspective import Table, PerspectiveManager, PerspectiveTornadoHandler
label_desc: Use image node_id 1 for calling a global function with example usage: perspective_thread(manager, table) without return types