From 9c547793a1054014e7f2b51380cf108ae9e54987 Mon Sep 17 00:00:00 2001 From: David Rose Date: Fri, 24 Oct 2008 18:46:09 +0000 Subject: [PATCH] safe to call destroy() multiple times --- direct/src/task/TaskNew.py | 2 ++ direct/src/task/TaskOrig.py | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/direct/src/task/TaskNew.py b/direct/src/task/TaskNew.py index e43a1c1baa..60a214dc2c 100644 --- a/direct/src/task/TaskNew.py +++ b/direct/src/task/TaskNew.py @@ -130,6 +130,8 @@ class TaskManager: self.setProfileTasks(ConfigVariableBool('profile-task-spikes', 0).getValue()) def destroy(self): + # This should be safe to call multiple times. + self._frameProfileQueue.clear() self.mgr.cleanup() diff --git a/direct/src/task/TaskOrig.py b/direct/src/task/TaskOrig.py index ebbb93a5de..3088ee4cfe 100644 --- a/direct/src/task/TaskOrig.py +++ b/direct/src/task/TaskOrig.py @@ -409,6 +409,7 @@ class TaskManager: _DidTests = False def __init__(self): + self._destroyed = False self.running = 0 self.stepping = 0 self.taskList = [] @@ -466,6 +467,9 @@ class TaskManager: pass def destroy(self): + if self._destroyed: + return + self._frameProfileQueue.clear() if self._doLaterTask: self._doLaterTask.remove() @@ -477,6 +481,7 @@ class TaskManager: del self.__doLaterList del self.pendingTaskDict del self.taskList + self._destroyed = True def setStepping(self, value): self.stepping = value