# TaskManager

from direct.task.TaskNew import TaskManager

## Inheritance:

TaskManager:

## Methods of TaskManager:

__init__
__makeTaskList
__repr__
__setupTask
__tryReplaceTaskMethod
_doProfiledFrames
_getLastTaskProfileSession
_getRandomTask
_hasProfiledDesignatedTask
_profileTask
_runTests
_setProfileTask
_unpackIOError
add
destroy
doMethodLater
doYield
finalInit
flushTaskProfiles
getAllTasks
getDoLaters
getProfileFrames
getProfileFramesSV
getProfileSession
getProfileTasks
getProfileTasksSV
getTasks
getTasksMatching
getTasksNamed
hasTaskNamed
invokeDefaultHandler
keyboardInterruptHandler
logTaskProfiles
popupControls
profileFrames
remove
removeTasksMatching
replaceMethod
run
setClock
setProfileFrames
setProfileTasks
setupTaskChain
step
stop

__init__ def __init__(self) Undocumented function.

__makeTaskList def __makeTaskList(self, taskCollection) Undocumented function.

__repr__ def __repr__(self) Undocumented function.

__setupTask def __setupTask(self, funcOrTask, name, priority, sort, extraArgs, taskChain, appendTask, owner, uponDeath) Undocumented function.

__tryReplaceTaskMethod def __tryReplaceTaskMethod(self, task, oldMethod, newFunction) Undocumented function.

_doProfiledFrames def _doProfiledFrames(self, numFrames) Undocumented function.

_getLastTaskProfileSession def _getLastTaskProfileSession(self) Undocumented function.

_getRandomTask def _getRandomTask(self) Undocumented function.

_hasProfiledDesignatedTask def _hasProfiledDesignatedTask(self) Undocumented function.

_profileTask def _profileTask(self, profileInfo, task) Undocumented function.

_runTests def _runTests(self) Undocumented function.

_setProfileTask def _setProfileTask(self, task) Undocumented function.

_unpackIOError def _unpackIOError(self, ioError) Undocumented function.

add def add(self, funcOrTask, name=None, sort=None, extraArgs=None, priority=None, uponDeath=None, appendTask=False, taskChain=None, owner=None) Add a new task to the taskMgr. The task will begin executing immediately, or next frame if its sort value has already passed this frame. The parameters are: funcOrTask - either an existing Task object (not already added to the task manager), or a callable function object. If this is a function, a new Task object will be created and returned. name - the name to assign to the Task. Required, unless you are passing in a Task object that already has a name. extraArgs - the list of arguments to pass to the task function. If this is omitted, the list is just the task object itself. appendTask - a boolean flag. If this is true, then the task object itself will be appended to the end of the extraArgs list before calling the function. sort - the sort value to assign the task. The default sort is 0. Within a particular task chain, it is guaranteed that the tasks with a lower sort value will all run before tasks with a higher sort value run. priority - the priority at which to run the task. The default priority is 0. Higher priority tasks are run sooner, and/or more often. For historical purposes, if you specify a priority without also specifying a sort, the priority value is understood to actually be a sort value. (Previously, there was no priority value, only a sort value, and it was called "priority".) uponDeath - a function to call when the task terminates, either because it has run to completion, or because it has been explicitly removed. taskChain - the name of the task chain to assign the task to. owner - an optional Python object that is declared as the "owner" of this task for maintenance purposes. The owner must have two methods: owner._addTask(self, task), which is called when the task begins, and owner._clearTask(self, task), which is called when the task terminates. This is all the owner means. The return value of add() is the new Task object that has been added, or the original Task object that was passed in.

destroy def destroy(self) Undocumented function.

doMethodLater def doMethodLater(self, delayTime, funcOrTask, name, extraArgs=None, sort=None, priority=None, taskChain=None, uponDeath=None, appendTask=False, owner=None) Adds a task to be performed at some time in the future. This is identical to add(), except that the specified delayTime is applied to the Task object first, which means that the task will not begin executing until at least the indicated delayTime (in seconds) has elapsed. After delayTime has elapsed, the task will become active, and will run in the soonest possible frame thereafter. If you wish to specify a task that will run in the next frame, use a delayTime of 0.

doYield def doYield(self, frameStartTime, nextScheduledTaskTime) Undocumented function.

finalInit def finalInit(self) Undocumented function.

flushTaskProfiles def flushTaskProfiles(self, name=None) Undocumented function.

getAllTasks def getAllTasks(self) Returns list of all tasks, active and sleeping, in arbitrary order.

getDoLaters def getDoLaters(self) Returns list of all sleeping tasks in arbitrary order.

getProfileFrames def getProfileFrames(self) Undocumented function.

getProfileFramesSV def getProfileFramesSV(self) Undocumented function.

getProfileSession def getProfileSession(self, name=None) Undocumented function.

getProfileTasks def getProfileTasks(self) Undocumented function.

getProfileTasksSV def getProfileTasksSV(self) Undocumented function.

getTasks def getTasks(self) Returns list of all active tasks in arbitrary order.

getTasksMatching def getTasksMatching(self, taskPattern) Returns a list of all tasks, active or sleeping, with a name that matches the pattern, which can include standard shell globbing characters like *, ?, and [].

getTasksNamed def getTasksNamed(self, taskName) Returns a list of all tasks, active or sleeping, with the indicated name.

hasTaskNamed def hasTaskNamed(self, taskName) Returns true if there is at least one task, active or sleeping, with the indicated name.

invokeDefaultHandler def invokeDefaultHandler(self, signalNumber, stackFrame) Undocumented function.

keyboardInterruptHandler def keyboardInterruptHandler(self, signalNumber, stackFrame) Undocumented function.

logTaskProfiles def logTaskProfiles(self, name=None) Undocumented function.

popupControls def popupControls(self) Undocumented function.

profileFrames def profileFrames(self, num=None, session=None, callback=None) Undocumented function.

remove def remove(self, taskOrName) Removes a task from the task manager. The task is stopped, almost as if it had returned task.done. (But if the task is currently executing, it will finish out its current frame before being removed.) You may specify either an explicit Task object, or the name of a task. If you specify a name, all tasks with the indicated name are removed. Returns the number of tasks removed.

removeTasksMatching def removeTasksMatching(self, taskPattern) Removes all tasks whose names match the pattern, which can include standard shell globbing characters like *, ?, and []. See also remove(). Returns the number of tasks removed.

replaceMethod def replaceMethod(self, oldMethod, newFunction) Undocumented function.

run def run(self) Starts the task manager running. Does not return until an exception is encountered (including KeyboardInterrupt).

setClock def setClock(self, clockObject) Undocumented function.

setProfileFrames def setProfileFrames(self, profileFrames) Undocumented function.

setProfileTasks def setProfileTasks(self, profileTasks) Undocumented function.

setupTaskChain def setupTaskChain(self, chainName, numThreads=None, tickClock=None, threadPriority=None, frameBudget=None, timeslicePriority=None) Defines a new task chain. Each task chain executes tasks potentially in parallel with all of the other task chains (if numThreads is more than zero). When a new task is created, it may be associated with any of the task chains, by name (or you can move a task to another task chain with task.setTaskChain()). You can have any number of task chains, but each must have a unique name. numThreads is the number of threads to allocate for this task chain. If it is 1 or more, then the tasks on this task chain will execute in parallel with the tasks on other task chains. If it is greater than 1, then the tasks on this task chain may execute in parallel with themselves (within tasks of the same sort value). If tickClock is True, then this task chain will be responsible for ticking the global clock each frame (and thereby incrementing the frame counter). There should be just one task chain responsible for ticking the clock, and usually it is the default, unnamed task chain. threadPriority specifies the priority level to assign to threads on this task chain. It may be one of TPLow, TPNormal, TPHigh, or TPUrgent. This is passed to the underlying threading system to control the way the threads are scheduled. frameBudget is the maximum amount of time (in seconds) to allow this task chain to run per frame. Set it to -1 to mean no limit (the default). It's not directly related to threadPriority. timeslicePriority is False in the default mode, in which each task runs exactly once each frame, round-robin style, regardless of the task's priority value; or True to change the meaning of priority so that certain tasks are run less often, in proportion to their time used and to their priority value. See AsyncTaskManager.setTimeslicePriority() for more.

step def step(self) Invokes the task manager for one frame, and then returns. Normally, this executes each task exactly once, though task chains that are in sub-threads or that have frame budgets might execute their tasks differently.

stop def stop(self) Undocumented function.