From b59401c64fdb856bd2c1c93a824e46e8d8e3f47e Mon Sep 17 00:00:00 2001 From: Lyncoln Date: Fri, 30 Oct 2026 00:44:04 -0400 Subject: [PATCH] Migrated Monitor to create a new thread for subroutines --- core/execution/createthread.py | 2 ++ core/execution/lifecyclemanager/lifecycleregistry.py | 12 +++++++++--- core/execution/monitor.py | 9 ++++++--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/core/execution/createthread.py b/core/execution/createthread.py index 748fbf2..595b7f6 100644 --- a/core/execution/createthread.py +++ b/core/execution/createthread.py @@ -12,4 +12,6 @@ def buildThread(module): thread.start() + print("THREAD STARTED", thread) + return thread diff --git a/core/execution/lifecyclemanager/lifecycleregistry.py b/core/execution/lifecyclemanager/lifecycleregistry.py index e92eb4e..907106a 100644 --- a/core/execution/lifecyclemanager/lifecycleregistry.py +++ b/core/execution/lifecyclemanager/lifecycleregistry.py @@ -23,13 +23,19 @@ def registerLifecycle(module, lifecycles): #print(lifecycles) if "mode" not in lifecycles[module.name]: - mode = getattr(module, "mode") - lifecycles[module.name]["mode"] = mode + if hasattr(module, "mode"): + mode = getattr(module, "mode") + lifecycles[module.name]["mode"] = mode + else: + lifecycles[module.name]["mode"] = {} + + #else: + # lifecycles[module.name]["mode"] = "oneshot" if lifecycles[module.name]["mode"] == "continuous": lifecycles[module.name]["refresh_rate"] = module.sleeptime - if not lifecycles[module.name]["mode"]: + if lifecycles[module.name]["mode"] == {}: lifecycles[module.name]["mode"] = "oneshot" #lifecycles[module.name][registryname] = registryvalue diff --git a/core/execution/monitor.py b/core/execution/monitor.py index 343edcd..e10a233 100644 --- a/core/execution/monitor.py +++ b/core/execution/monitor.py @@ -31,11 +31,14 @@ def buildMonitor(monitor, outputs): buildOutput(response, monitor, outputs) if match: - from core.execution.executioncontract import executeContract + from core.execution.createthread import buildThread + #from core.execution.executioncontract import executeContract logging.info(filter.get("print")) - module = filter["execute"] + #module = filter["execute"] + + #response = executeContract(filter["execute"], outputs) - response = executeContract(filter["execute"], outputs) + thread = buildThread(filter["execute"]) return response \ No newline at end of file