docs: def _clear_done_waiters(self):
          """Remove waiters that are done (should only happen if they are cancelled)"""
          while self._waiters and self._waiters[0].done():
              self._waiters.popleft()
          if not self._waiters:
              self._stop_listening()