class_docstr: Subclass of QMutex that provides useful debugging information during
  deadlocks--tracebacks are printed for both the code location that is 
  attempting to lock the mutex as well as the location that has already
  acquired the lock.
  
  Also provides __enter__ and __exit__ methods for use in "with" statements.
class_docstr_tok: ["Subclass","of","QMutex","that","provides","useful","debugging","information","during","deadlocks","--","tracebacks","are","printed","for","both","the","code","location","that","is","attempting","to","lock","the","mutex","as","well","as","the","location","that","has","already","acquired","the","lock",".","Also","provides","__enter__","and","__exit__","methods","for","use","in","``","with","''","statements","."]
code: def __init__(self, *args, **kargs):
      if kargs.get("recursive", False):
          args = (QtCore.QMutex.Recursive,)
      QtCore.QMutex.__init__(self, *args)
      self.l = QtCore.QMutex()  ## for serializing access to self.tb
      self.tb = []
      self.debug = kargs.pop("debug", False)
  
file_path: pyqtgraph/pyqtgraph/util/mutex.py
imports: import traceback
  from ..Qt import QtCore
label_desc: Use image node_id 1 to create a new Mutex object from inherited base classes: QtCore with example: obj = Mutex()