docs: def _future_done(self, future):
          """ Will be called when the coroutine is done """
          try:
              # notify the subscribers (except result is an exception or NONE)
              result = future.result()  # may raise exception
              if result is not NONE:
                  self.notify(result)  # may also raise exception
          except asyncio.CancelledError:
              return
          except Exception:  # pylint: disable=broad-except
              self._options.error_callback(*sys.exc_info())
  
          # check if queue is present and something is in the queue
          if self._queue:
              value = self._queue.popleft()
  
              # start the coroutine
              self._run_coro(value)
          else:
              self._future = None