code: def waiter(self):
          
          assert self._onetime, 'One time events only can invoke waiter'
          if not self._waiter:
              self._waiter = get_event_loop().create_future()
              if self.fired():
                  self._waiter.set_result(None)
          return self._waiter
docs: Return a :class:`~asyncio.Future` called back once the event
          has been fired.
          If the event has been fired already return a resolved future.
  
          This method is available only for one-time events