docs: def _worker_thread_disk(self):
          # type: (Downloader) -> None
          """Worker thread for disk
          :param Downloader self: this
          """
          while not self.termination_check:
              try:
                  dd, offsets, data = self._disk_queue.get(
                      block=False, timeout=0.1)
              except queue.Empty:
                  continue
              try:
                  self._process_data(dd, offsets, data)
              except Exception as e:
                  with self._transfer_lock:
                      self._exceptions.append(e)