code: def _run_asyncio(loop, zmq_context):
      
      try:
          asyncio.set_event_loop(loop)
          loop.run_forever()
      except:
          pass
      finally:
          loop.close()
          zmq_context.destroy(1000)
docs: Run asyncio (should be called in a thread) and close the loop and the zmq context when the thread ends
      :param loop:
      :param zmq_context:
      :return: