Introduced stop signals and dependency gating for operations. Added mechanism to RMASS message sending protocol (Confirmed Working)

This commit is contained in:
Lyncoln
2026-10-26 13:12:42 -04:00
parent 55f1357aef
commit 5960e81bfd
13 changed files with 137 additions and 24 deletions
+9 -3
View File
@@ -8,12 +8,18 @@ def buildAction (action, outputs):
if hasattr(action, "allowaction"):
if not action.allowaction:
return outputs, resolved
return outputs, None
if match:
return outputs, resolved
if hasattr(action, "depends"):
outputs["stopsignals"].append(action.alias)
return outputs, None#resolved
response, outputs = executeRequest(action, outputs, resolved)
response, outputs = executeRequest(action, outputs, resolved)
if response is None:
return outputs, None
outputs, response = buildRuntimeAttr(action, outputs, resolved, response)
return outputs, response
+10 -7
View File
@@ -9,16 +9,19 @@ def buildOperation(definition, outputs):
from core.execution.executioncontract import executeContract
actions = definition.actions
responses = []
outputs["stopsignals"] = []
for action in actions:
if hasattr(action, "depends"):
stop =any(
dependency in outputs["stopsignals"]
for dependency in action.depends
)
#stop = True
#break
#if action == "recursiveset":
#if hasattr(action, "recursiveset"):
# from core.runtime.recursive import recursiveSet
# outputs, responses = recursiveSet(action, outputs, responses)
if stop:
continue
#else:
#outputs, response = buildAction(action, outputs)
outputs, response = executeContract(action, outputs)
#if hasattr(action, recursive)
+14
View File
@@ -26,7 +26,19 @@ def buildRecursive(definition, outputs):
for item in items:
outputs[definition.recursiveset["outputlabel"]] = item
outputs["stopsignals"] = []
for job in recursiveset:
if hasattr(job, "depends"):
stop =any(
dependency in outputs["stopsignals"]
for dependency in job.depends
)
#stop = True
#break
if stop:
continue
#print(f"RECURSIVE DEBUG DURING {job.name}")
#print(item)
#outputs, response = buildAction(job, outputs)
@@ -38,4 +50,6 @@ def buildRecursive(definition, outputs):
if not retain:
outputs.pop(source, None)
outputs.pop("stopsignals", None)
return outputs, responses