class_docstr: The dispatcher is responsible for assigning tasks to free workers, report results back to the master and
  communicate to the nameserver.
class_docstr_tok: ["The","dispatcher","is","responsible","for","assigning","tasks","to","free","workers",",","report","results","back","to","the","master","and","communicate","to","the","nameserver","."]
code: def shutdown(self, shutdown_workers=False):
      if shutdown_workers:
          self.shutdown_all_workers()
  
      with self.runner_cond:
          self.pyro_daemon.shutdown()
  
imports: import threading
  import logging
  import queue
  import time
  import Pyro4
label_desc: Use image node_id 4 for calling the Dispatcher obj's underlying member method code with example usage: obj.shutdown(shutdown_workers) without return types