class_docstr: A mock executor that operates serially.
  
  Useful for debugging.
  
  Example usage:
  
  # Runs concurrently, difficult to debug:
  pool = futures.ThreadPoolExecutor(max_workers=max_workers)
  pool.submit(my_function)
  
  # For debugging:
  pool = DummyExecutor()
  pool.submit(my_function)  # Will block and run serially.
class_docstr_tok: ["A","mock","executor","that","operates","serially",".","Useful","for","debugging",".","Example","usage",":","#","Runs","concurrently",",","difficult","to","debug",":","pool","=","futures.ThreadPoolExecutor","(","max_workers=max_workers",")","pool.submit","(","my_function",")","#","For","debugging",":","pool","=","DummyExecutor","(",")","pool.submit","(","my_function",")","#","Will","block","and","run","serially","."]
code: def __init__(self):
      self._shutdown = False
      self._shutdown_lock = threading.Lock()
  
imports: from collections import abc
  from concurrent import futures
  import json
  import operator
  import threading
  from typing import Any, Callable, Optional, Sequence, Set, Tuple, Union
  from absl import logging
  from clu import parameter_overview
  import jax
  import jax.numpy
  from jax.tree_util import tree_map
  import ml_collections
label_desc: Use image node_id 1 to create a new DummyExecutor object from inherited base classes: futures with example: obj = DummyExecutor()