# ContainerLeakDetector

from direct.showbase.ContainerLeakDetector import ContainerLeakDetector

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.

## Inheritance:

ContainerLeakDetector: Job
Job: DirectObject
DirectObject:

## Methods of ContainerLeakDetector:

__init__
_checkForLeaks
_getCheckTaskName
_getPruneTaskName
_pruneObjectRefs
_scheduleNextLeakCheck
_scheduleNextPruning
def
destroy
getContainerById
getContainerByIdGen
getContainerIds
getContainerNameById
getContainerNameByIdGen
getLeakEvent
removeContainerById
run

## Methods of Job:

__init__
_cleanupGenerator
_getGenerator
_getJobId
destroy
finished
getFinishedEvent
getJobName
getPriority
printingBegin
printingEnd
resume
run
setPriority
suspend

## Methods of DirectObject:

__init__
accept
acceptOnce
classTree
getAllAccepting
ignore
ignoreAll
isAccepting
isIgnoring

__init__ def __init__(self, name, firstCheckDelay=None) Undocumented function.

_checkForLeaks def _checkForLeaks(self, task=None) Undocumented function.

_getCheckTaskName def _getCheckTaskName(self) Undocumented function.

_getPruneTaskName def _getPruneTaskName(self) Undocumented function.

_pruneObjectRefs def _pruneObjectRefs(self, task=None) Undocumented function.

_scheduleNextLeakCheck def _scheduleNextLeakCheck(self) Undocumented function.

_scheduleNextPruning def _scheduleNextPruning(self) Undocumented function.

def def defremovePrivateObj Undocumented function.

destroy def destroy(self) Undocumented function.

getContainerById def getContainerById(self, id) Undocumented function.

getContainerByIdGen def getContainerByIdGen(self, id) Undocumented function.

getContainerIds def getContainerIds(self) Undocumented function.

getContainerNameById def getContainerNameById(self, id) Undocumented function.

getContainerNameByIdGen def getContainerNameByIdGen(self, id) Undocumented function.

getLeakEvent def getLeakEvent(self) Undocumented function.

removeContainerById def removeContainerById(self, id) Undocumented function.

run def run(self) Undocumented function.

__init__ def __init__(self, name) Undocumented function.

_cleanupGenerator def _cleanupGenerator(self) Undocumented function.

_getGenerator def _getGenerator(self) Undocumented function.

_getJobId def _getJobId(self) Undocumented function.

destroy def destroy(self) Undocumented function.

finished def finished(self) Undocumented function.

getFinishedEvent def getFinishedEvent(self) Undocumented function.

getJobName def getJobName(self) Undocumented function.

getPriority def getPriority(self) Undocumented function.

printingBegin def printingBegin(self) Undocumented function.

printingEnd def printingEnd(self) Undocumented function.

resume def resume(self) if self._printing: we may be suspended/resumed multiple times per frame, that gets spammy if we need to pick out the output of a job, put a prefix onto each line of the output print 'JOB:%s:RESUME' % self._name

run def run(self) Undocumented function.

setPriority def setPriority(self, priority) Undocumented function.

suspend def suspend(self) if self._printing: print 'JOB:%s:SUSPEND' % self._name pass

__init__ def __init__(self) Undocumented function.

accept def accept(self, event, method, extraArgs=[]) Undocumented function.

acceptOnce def acceptOnce(self, event, method, extraArgs=[]) Undocumented function.

classTree def classTree(self) Undocumented function.

getAllAccepting def getAllAccepting(self) Undocumented function.

ignore def ignore(self, event) Undocumented function.

ignoreAll def ignoreAll(self) Undocumented function.

isAccepting def isAccepting(self, event) Undocumented function.

isIgnoring def isIgnoring(self, event) Undocumented function.