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)
Worker thread for disk
        :param Downloader self: this