docs: def _worker_thread_upload(self):
          # type: (Uploader) -> None
          """Worker thread upload
          :param Uploader self: this
          """
          max_set_len = self._general_options.concurrency.transfer_threads << 2
          while not self.termination_check:
              try:
                  if len(self._transfer_set) > max_set_len:
                      time.sleep(0.1)
                      continue
                  else:
                      ud = self._upload_queue.get(block=False, timeout=0.1)
              except queue.Empty:
                  continue
              try:
                  self._process_upload_descriptor(ud)
              except Exception as e:
                  with self._upload_lock:
                      self._exceptions.append(e)