code: def end(self, session):
      session.run(self._finish_self)
      num_finished_workers = session.run(self._num_finished_workers)
      while num_finished_workers < self._num_workers:
          tf.logging.info(
              "%d workers have finished ...", num_finished_workers
          )
          time.sleep(1)
          num_finished_workers = session.run(self._num_finished_workers)
  
file_path: euler/tf_euler/python/utils/hooks.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import time
  import tensorflow
label_desc: Use image node_id 2 for calling the SyncExitHook obj's underlying member method code with example usage: obj.end(session) without return types