Refined dispatcher and threading. Added lifecycle registry

This commit is contained in:
Lyncoln
2026-10-09 16:40:48 -04:00
parent e6b2722708
commit 8d91b8d716
42 changed files with 294 additions and 76 deletions
+30
View File
@@ -0,0 +1,30 @@
import threading
from lifecycleregistry import registerLifecycle
from lifecyclemanager import manageLifecycle
threadlist = []
threadnum = 0
def buildThread(module, lifecycles):
global threadnum
threadnum += 1
threadname = f"thread.{threadnum}"
thread = threading.Thread(
target=manageLifecycle,
args=(module, lifecycles)
)
thread.start()
registryname = threadname
registryvalue = thread
lifecycles = registerLifecycle (module, lifecycles, registryname, registryvalue)
threadlist.append(thread)
print(threadlist)
print(lifecycles)
return threadnum, threadname, lifecycles, threadlist
@@ -0,0 +1,2 @@
from .lifecyclemanager import manageLifecycle
from .lifecycleregistry import registerLifecycle
@@ -0,0 +1,25 @@
import time
from core.execution.operation import buildOperation
from core.execution.action import buildAction
from core import executeContract
def manageLifecycle(module, lifecycles): #lifecycles, state):
#print(lifecycles[module.name]["mode"])
if lifecycles[module.name]["mode"] == "continuous":
while lifecycles[module.name]["mode"] == "continuous":
print(lifecycles)
outputs = executeContract(module)
#print(lifecycles)
time.sleep(module.sleeptime)
elif lifecycles[module.name]["mode"] == "oneshot":
print(lifecycles)
outputs = executeContract(module)
#print(lifecycles)
return
@@ -0,0 +1,8 @@
def registerLifecycle(module, lifecycles, registryname, registryvalue):
if module.name not in lifecycles:
lifecycles[module.name] = {}
lifecycles[module.name][registryname] = registryvalue
return lifecycles