Panda3D
Public Member Functions | Static Public Attributes | List of all members
ContainerLeakDetector Class Reference
Inheritance diagram for ContainerLeakDetector:
Job DirectObject

Public Member Functions

def __init__ (self, name, firstCheckDelay=None)
 
def addPrivateObj (cls, obj)
 
def destroy (self)
 
def getContainerById (self, id)
 
def getContainerByIdGen (self, id, **kwArgs)
 
def getContainerIds (self)
 
def getContainerNameById (self, id)
 
def getContainerNameByIdGen (self, id, **kwArgs)
 
def getLeakEvent (self)
 
def getPathsToContainers (self, name, ot, doneCallback=None)
 
def getPathsToContainersNamed (self, name, on, doneCallback=None)
 
def removeContainerById (self, id)
 
def removePrivateObj (cls, obj)
 
def run (self)
 
- Public Member Functions inherited from Job
def __init__ (self, name)
 
def finished (self)
 
def getFinishedEvent (self)
 
def getJobName (self)
 
def getPriority (self)
 
def isFinished (self)
 
def printingBegin (self)
 
def printingEnd (self)
 
def resume (self)
 
def setPriority (self, priority)
 
def suspend (self)
 
- Public Member Functions inherited from DirectObject
def __init__ (self)
 
def accept (self, event, method, extraArgs=[])
 
def acceptOnce (self, event, method, extraArgs=[])
 
def addTask (self, *args, **kwargs)
 
def detectLeaks (self)
 
def doMethodLater (self, *args, **kwargs)
 
def getAllAccepting (self)
 
def ignore (self, event)
 
def ignoreAll (self)
 
def isAccepting (self, event)
 
def isIgnoring (self, event)
 
def removeAllTasks (self)
 
def removeTask (self, taskOrName)
 

Static Public Attributes

 notify = directNotify.newCategory("ContainerLeakDetector")
 
 PrivateIds = set()
 
- Static Public Attributes inherited from Job
 Continue = None
 
 Done = object()
 
 Priorities = ScratchPad(Min=1, Low=100, Normal=1000, High=10000)
 
 Sleep = object()
 
- Static Public Attributes inherited from DirectObject
def accept_once = acceptOnce
 
def add_task = addTask
 
def detect_leaks = detectLeaks
 
def do_method_later = doMethodLater
 
def get_all_accepting = getAllAccepting
 
def ignore_all = ignoreAll
 
def is_accepting = isAccepting
 
def is_ignoring = isIgnoring
 
def remove_all_tasks = removeAllTasks
 
def remove_task = removeTask
 

Detailed Description

Low-priority Python object-graph walker that looks for leaking containers.
To reduce memory usage, this does a random walk of the Python objects to
discover containers rather than keep a set of all visited objects; it may
visit the same object many times but eventually it will discover every object.
Checks container sizes at ever-increasing intervals.

Constructor & Destructor Documentation

◆ __init__()

def __init__ (   self,
  name,
  firstCheckDelay = None 
)

Member Function Documentation

◆ addPrivateObj()

def addPrivateObj (   cls,
  obj 
)

◆ destroy()

def destroy (   self)

Reimplemented from Job.

◆ getContainerById()

def getContainerById (   self,
  id 
)

◆ getContainerByIdGen()

def getContainerByIdGen (   self,
  id,
**  kwArgs 
)

◆ getContainerIds()

def getContainerIds (   self)

◆ getContainerNameById()

def getContainerNameById (   self,
  id 
)

◆ getContainerNameByIdGen()

def getContainerNameByIdGen (   self,
  id,
**  kwArgs 
)

◆ getLeakEvent()

def getLeakEvent (   self)

◆ getPathsToContainers()

def getPathsToContainers (   self,
  name,
  ot,
  doneCallback = None 
)

◆ getPathsToContainersNamed()

def getPathsToContainersNamed (   self,
  name,
  on,
  doneCallback = None 
)

◆ removeContainerById()

def removeContainerById (   self,
  id 
)

◆ removePrivateObj()

def removePrivateObj (   cls,
  obj 
)

◆ run()

def run (   self)

Reimplemented from Job.

Member Data Documentation

◆ notify

notify = directNotify.newCategory("ContainerLeakDetector")
static

◆ PrivateIds

PrivateIds = set()
static