From 700fba21ed42e92fd61ec18bc146df6d5eefb2b2 Mon Sep 17 00:00:00 2001 From: Nicola Mettifogo Date: Fri, 6 Apr 2007 18:44:58 +0000 Subject: Enabled lazy removal for Job instances. svn-id: r26396 --- engines/parallaction/parallaction.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/engines/parallaction/parallaction.cpp b/engines/parallaction/parallaction.cpp index c8f2447039..9bda9583da 100644 --- a/engines/parallaction/parallaction.cpp +++ b/engines/parallaction/parallaction.cpp @@ -872,9 +872,7 @@ Job *Parallaction::addJob(JobFn fn, void *parm, uint16 tag) { } void Parallaction::removeJob(Job *j) { - - removeNode(j); - delete j; + j->_finished = 1; return; } @@ -896,11 +894,14 @@ void Parallaction::runJobs() { while (j) { debugC(3, kDebugJobs, "runJobs: %i", j->_tag); - (*j->_fn)(j->_parm, j); Job *v4 = (Job*)j->_next; - if (j->_finished == 1) - removeJob(j); + if (j->_finished == 1) { + removeNode(j); + delete j; + } else { + (*j->_fn)(j->_parm, j); + } j = v4; } -- cgit v1.2.3