Skip to content

Commit 7ac8477

Browse files
committed
make engine steps not recursive
1 parent 26fe739 commit 7ac8477

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

SpiffWorkflow/bpmn/workflow.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,12 @@ def do_engine_steps(self, will_complete_task=None, did_complete_task=None):
164164
:param will_complete_task: Callback that will be called prior to completing a task
165165
:param did_complete_task: Callback that will be called after completing a task
166166
"""
167+
count = self._do_engine_steps(will_complete_task, did_complete_task)
168+
while count > 0:
169+
count = self._do_engine_steps(will_complete_task, did_complete_task)
170+
171+
def _do_engine_steps(self, will_complete_task=None, did_complete_task=None):
172+
167173
def update_workflow(wf):
168174
count = 0
169175
# Wanted to use the iterator method here, but at least this is a shorter list
@@ -187,8 +193,7 @@ def update_workflow(wf):
187193
task.task_spec._update(task)
188194

189195
count = update_workflow(self)
190-
if count > 0 or len(self.get_active_subprocesses()) > len(active_subprocesses):
191-
self.do_engine_steps(will_complete_task, did_complete_task)
196+
return count > 0 or len(self.get_active_subprocesses()) > len(active_subprocesses)
192197

193198
def refresh_waiting_tasks(self, will_refresh_task=None, did_refresh_task=None):
194199
"""

0 commit comments

Comments
 (0)