code: def _handle(self, event_handler, event_name, user_args, event_timeout,
                  cond, cond_timeout):
          
          if cond:
              cond.wait(cond_timeout)
          event = self.pop_event(event_name, event_timeout)
          return event_handler(event, *user_args)
docs: Pop an event of specified type and calls its handler on it. If
          condition is not None, block until condition is met or timeout.