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

def waiter(self):
        """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
        """
        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