code: def handle_event(self,
                       event_handler,
                       event_name,
                       user_args,
                       event_timeout=None,
                       cond=None,
                       cond_timeout=None):
          
          worker = self.executor.submit(self._handle, event_handler, event_name,
                                        user_args, event_timeout, cond,
                                        cond_timeout)
          return worker
docs: Handle events that don't have registered handlers
  
          In a new thread, poll one event of specified type from its queue and
          execute its handler. If no such event exists, the thread waits until
          one appears.
  
          Args:
              event_handler: Handler for the event, which should take at least
                  one argument - the event json object.
              event_name: Name of the event to be handled.
              user_args: User arguments for the handler; to be passed in after
                  the event json.
              event_timeout: Number of seconds to wait for the event to come.
              cond: A condition to wait on before executing the handler. Should
                  be a threading.Event object.
              cond_timeout: Number of seconds to wait before the condition times
                  out. Never times out if None.
  
          Returns:
              A concurrent.Future object associated with the handler.
              If blocking call worker.result() is triggered, the handler
              needs to return something to unblock.