class_docstr: Consume tfevents from a priority queue.
  
  There should always only be one of these per run_manager.  We wait for 10 seconds of
  queued events to reduce the chance of multiple tfevent files triggering out of order
  steps.
class_docstr_tok: ["Consume","tfevents","from","a","priority","queue",".","There","should","always","only","be","one","of","these","per","run_manager",".","We","wait","for","10","seconds","of","queued","events","to","reduce","the","chance","of","multiple","tfevent","files","triggering","out","of","order","steps","."]
code: def _thread_except_body(self) -> None:
      try:
          self._thread_body()
      except Exception as e:
          logger.exception(
              "generic exception in TBEventConsumer thread"
          )
          raise e
  
imports: import glob
  import logging
  import os
  import queue
  import socket
  import sys
  import threading
  import time
  from typing import TYPE_CHECKING, Any, Dict, List, Optional
  import wandb
  from wandb import util
  from wandb.sdk.interface.interface import GlobStr
  from wandb.sdk.lib import filesystem
  from wandb.viz import CustomChart
  from .None import run
label_desc: Use image node_id 4 for calling the TBEventConsumer obj's underlying member method code with example usage: obj._thread_except_body() without return types