code: def _reload_on_update(modify_times: Dict[str, float]) -> None:
      if _reload_attempted:
          # We already tried to reload and it didn't work, so don't try again.
          return
      if process.task_id() is not None:
          # We're in a child process created by fork_processes.  If child
          # processes restarted themselves, they'd all restart and then
          # all call fork_processes again.
          return
      for module in list(sys.modules.values()):
          # Some modules play games with sys.modules (e.g. email/__init__.py
          # in the standard library), and occasionally this can cause strange
          # failures in getattr.  Just ignore anything that's not an ordinary
          # module.
          if not isinstance(module, types.ModuleType):
              continue
          path = getattr(module, "__file__", None)
          if not path:
              continue
          if path.endswith(".pyc") or path.endswith(".pyo"):
              path = path[:-1]
          _check_file(modify_times, path)
      for path in _watched_files:
          _check_file(modify_times, path)
  
imports: import os
  import sys
  import functools
  import importlib.abc
  import os
  import pkgutil
  import sys
  import traceback
  import types
  import subprocess
  import weakref
  from tornado import ioloop
  from tornado.log import gen_log
  from tornado import process
  from typing import Callable, Dict, Optional, List, Union
label_desc: Use image node_id 5 for calling a global function with example usage: _reload_on_update(modify_times) without return types