From d0ef5b51ffdc742e281db9154601c9dbeb044bfc Mon Sep 17 00:00:00 2001 From: Darren Ranalli Date: Mon, 25 Aug 2008 21:59:14 +0000 Subject: [PATCH] long-running task warning now warns based on average frame duration --- direct/src/task/Task.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/direct/src/task/Task.py b/direct/src/task/Task.py index 444828209e..3f7fc5857a 100644 --- a/direct/src/task/Task.py +++ b/direct/src/task/Task.py @@ -354,7 +354,8 @@ class TaskManager: OsdPrefix = 'task.' - DefTaskDurationWarningThreshold = 3. + # multiple of average frame duration + DefTaskDurationWarningThreshold = 4. def __init__(self): self.running = 0 @@ -751,10 +752,11 @@ class TaskManager: task.avgDt = 0 # warn if the task took too long - if self.warnTaskDuration: - if dt >= self.taskDurationWarningThreshold: - assert TaskManager.notify.warning('task %s ran for %.2f seconds' % ( - task.name, dt)) + if self.warnTaskDuration and self.globalClock: + avgFrameDur = (1. / self.globalClock.getAverageFrameRate()) + if dt >= (self.taskDurationWarningThreshold * avgFrameDur): + assert TaskManager.notify.warning('frame %s: task %s ran for %.2f seconds, avg frame duration=%.2f seconds' % ( + globalClock.getFrameCount(), task.name, dt, avgFrameDur)) return ret