docs: @Override
    public void run() {
      logger.info("Starting announce loop...");
  
  
      while (!this.stop && !Thread.currentThread().isInterrupted()) {
  
        final List<AnnounceableInformation> announceableInformationList = myContext.getTorrentsStorage().announceableTorrents();
        logger.debug("Starting announce for {} torrents", announceableInformationList.size());
        announceAllTorrents(announceableInformationList, AnnounceRequestMessage.RequestEvent.NONE);
        try {
          Thread.sleep(this.myAnnounceInterval * 1000);
        } catch (InterruptedException ie) {
          break;
        }
      }
  
      announceAllTorrents(myContext.getTorrentsStorage().announceableTorrents(), AnnounceRequestMessage.RequestEvent.STOPPED);
  
      logger.info("Exited announce loop.");
    }