code: def run(self) -> None:
          
          from sslyze.concurrent_scanner import PluginRaisedExceptionScanResult
  
          # Start processing task in the priority queue first
          current_queue_in = self.priority_queue_in
          while True:
  
              task = current_queue_in.get()  # Grab a task from queue_in
              if task is None:  # All tasks have been completed
                  current_queue_in.task_done()
  
                  if current_queue_in == self.priority_queue_in:
                      # All high priority tasks have been completed; switch to low priority tasks
                      current_queue_in = self.queue_in
                      continue
                  else:
                      # All the tasks have been completed; pass on the sentinel to result_queue and exit
                      self.queue_out.put(None)
                      break
  
              server_info, scan_command = task
              try:
                  result = self._synchronous_scanner.run_scan_command(server_info, scan_command)
              except Exception as e:
                  # raise
                  result = PluginRaisedExceptionScanResult(server_info, scan_command, e)
  
              # Send the result to queue_out
              self.queue_out.put(result)
              current_queue_in.task_done()
docs: The process will first complete tasks it gets from self.queue_in.
          Once it gets notified that all the tasks have been completed, it terminates.