Add Mrntt component; init globalMind in mrntt.initializeReq

This makes the initialization sequence much cleaner and conceptually
well encapsulated.

We also now dynamically allocate the Mind objects. They're allocated
dynamically by Mrntt inside of initializeReq. This means that we no
longer have to worry about jolting and cleaning up the running threads
of global mind object even when we never explicitly called
Mind.initializeReq.

Along with other conceptual improvements to our abstractions, this
patch also gets us to a real "end of program initialization" point
for the first time.
This commit is contained in:
2025-09-14 22:17:19 -04:00
parent 16865dc36f
commit 91ccd16b33
23 changed files with 681 additions and 252 deletions
+4 -1
View File
@@ -3,6 +3,8 @@ add_library(smocore STATIC
mind.cpp
opts.cpp
componentThread.cpp
component.cpp
body/body.cpp
)
target_include_directories(smocore PUBLIC
@@ -12,8 +14,9 @@ target_include_directories(smocore PUBLIC
# Link against pthread for CPU affinity functions
find_package(Threads REQUIRED)
target_link_libraries(smocore
PRIVATE Threads::Threads senseApis)
PRIVATE Threads::Threads senseApis mindManager)
add_subdirectory(marionette)
add_subdirectory(deviceManager)
add_subdirectory(senseApis)
add_subdirectory(mindManager)