Files
salmanoff/main.cpp
T
hayodea 1c397dfeb5 Split: Split libspinscale off from SMO.
Now we can probably begin using libspinscale in Couresilient
without worrying about excessive technical debt later on.
2026-02-22 17:46:27 -04:00

36 lines
1.1 KiB
C++

#include <iostream>
#include <pthread.h>
#include <componentThread.h>
#include <spinscale/componentThread.h>
#include <spinscale/runtime.h>
#include <marionette/marionette.h>
int main(int argc, char *argv[], char *envp[])
{
/* Set the pptr thread ID and thread before using any ComponentThread
* functionality.
*/
sscl::ComponentThread::setPuppeteerThreadId(smo::SmoThreadId::MRNTT);
sscl::ComponentThread::setPuppeteerThread(smo::mrntt::thread);
pthread_setname_np(pthread_self(), "smo:CRT:main");
/* We don't do anything inside of main()
* Main merely waits for the marionette thread to exit.
*/
std::cout << "CRT:" << __func__ << ": about to JOLT Mrntt with cmdline args"
<< '\n';
smo::mrntt::thread->getIoService().post(
[argc, argv, envp]()
{
std::cout << "Mrntt:" << __func__ << ":JOLTED: setting cmdline args"
<< '\n';
sscl::CrtCommandLineArgs::set(argc, argv, envp);
smo::mrntt::thread->getIoService().stop();
}
);
smo::mrntt::thread->thread.join();
std::cout << "CRT:" << __func__ << ": Mrntt exited with code '"
<< sscl::pptr::exitCode << "'\n";
return sscl::pptr::exitCode;
}