Libspinscale: Initial top-level SMO port to coroutine framework
We haven't ported everything. Just the top-level methods. We'll dig in to the leaf stuff later. Surprisingly, this all went without any real difficulties. Runs like a charm on first try.
This commit is contained in:
+11
-10
@@ -33,9 +33,8 @@ void marionetteInitializeReqCb(bool success)
|
||||
std::cerr << __func__ << ": Failed to initialize Marionette. Shutting down."
|
||||
<< '\n';
|
||||
|
||||
mrntt.finalizeReq({nullptr, std::bind(
|
||||
&smo::mrntt::marionetteFinalizeReqCb,
|
||||
std::placeholders::_1)});
|
||||
mrntt.holdFinalizeCReq(
|
||||
[]() { marionetteFinalizeReqCb(true); });
|
||||
}
|
||||
|
||||
void marionetteFinalizeReqCb(bool success)
|
||||
@@ -83,9 +82,8 @@ void MarionetteComponent::postJoltHook()
|
||||
default:
|
||||
break;
|
||||
}
|
||||
mrntt.finalizeReq({nullptr, std::bind(
|
||||
&marionetteFinalizeReqCb,
|
||||
std::placeholders::_1)});
|
||||
mrntt.holdFinalizeCReq(
|
||||
[]() { marionetteFinalizeReqCb(true); });
|
||||
});
|
||||
}
|
||||
|
||||
@@ -110,7 +108,7 @@ void MarionetteComponent::tryBlock1Hook()
|
||||
|
||||
void MarionetteComponent::preLoopHook()
|
||||
{
|
||||
/** EXPLANATION:
|
||||
/** EXPLANATION:
|
||||
* Initialize Salmanoff's Manager classes first.
|
||||
* Manager classes' initialization is synchronous in nature, so we
|
||||
* don't need the minds to be running to initialize them.
|
||||
@@ -131,9 +129,12 @@ void MarionetteComponent::preLoopHook()
|
||||
smo::initializeSalmanoff();
|
||||
callShutdownSalmanoff = true;
|
||||
|
||||
initializeReq(sscl::Callback<mrnttLifetimeMgmtOpCbFn>{
|
||||
nullptr,
|
||||
std::bind(&marionetteInitializeReqCb, std::placeholders::_1)});
|
||||
holdInitializeCReq(
|
||||
[]
|
||||
{
|
||||
marionetteInitializeReqCb(
|
||||
!mrntt.initializeLifetimeExceptionPtr);
|
||||
});
|
||||
|
||||
std::cout << "PuppeteerThread::main: Entering event loop" << "\n";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user