Once again, this should have been included in a previous commit, RE renaming compnent state changed events
This commit is contained in:
@@ -54,7 +54,7 @@ int Application::run(const std::vector<std::string>& arguments) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Main event loop
|
// Main event loop
|
||||||
while (Thread::getState() == ThreadState::READY) {
|
while (Thread::getThreadState() == ThreadState::READY) {
|
||||||
this->applicationEventListener->waitAndDispatch();
|
this->applicationEventListener->waitAndDispatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,7 +116,7 @@ void Application::startup() {
|
|||||||
this->startTargetController();
|
this->startTargetController();
|
||||||
this->startDebugServer();
|
this->startDebugServer();
|
||||||
|
|
||||||
Thread::setState(ThreadState::READY);
|
Thread::setThreadState(ThreadState::READY);
|
||||||
}
|
}
|
||||||
|
|
||||||
ApplicationConfig Application::extractConfig() {
|
ApplicationConfig Application::extractConfig() {
|
||||||
@@ -208,18 +208,18 @@ int Application::initProject() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Application::shutdown() {
|
void Application::shutdown() {
|
||||||
auto appState = Thread::getState();
|
auto appState = Thread::getThreadState();
|
||||||
if (appState == ThreadState::STOPPED || appState == ThreadState::SHUTDOWN_INITIATED) {
|
if (appState == ThreadState::STOPPED || appState == ThreadState::SHUTDOWN_INITIATED) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Thread::setState(ThreadState::SHUTDOWN_INITIATED);
|
Thread::setThreadState(ThreadState::SHUTDOWN_INITIATED);
|
||||||
Logger::info("Shutting down Bloom");
|
Logger::info("Shutting down Bloom");
|
||||||
|
|
||||||
this->stopDebugServer();
|
this->stopDebugServer();
|
||||||
this->stopTargetController();
|
this->stopTargetController();
|
||||||
|
|
||||||
if (this->signalHandler.getState() == ThreadState::READY) {
|
if (this->signalHandler.getThreadState() != ThreadState::STOPPED) {
|
||||||
// Signal handler is still running
|
// Signal handler is still running
|
||||||
this->signalHandler.triggerShutdown();
|
this->signalHandler.triggerShutdown();
|
||||||
|
|
||||||
@@ -233,7 +233,7 @@ void Application::shutdown() {
|
|||||||
Logger::debug("SignalHandler thread joined");
|
Logger::debug("SignalHandler thread joined");
|
||||||
}
|
}
|
||||||
|
|
||||||
Thread::setState(ThreadState::STOPPED);
|
Thread::setThreadState(ThreadState::STOPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Application::startTargetController() {
|
void Application::startTargetController() {
|
||||||
@@ -253,7 +253,7 @@ void Application::startTargetController() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Application::stopTargetController() {
|
void Application::stopTargetController() {
|
||||||
auto targetControllerState = this->targetController.getState();
|
auto targetControllerState = this->targetController.getThreadState();
|
||||||
if (targetControllerState == ThreadState::STARTING || targetControllerState == ThreadState::READY) {
|
if (targetControllerState == ThreadState::STARTING || targetControllerState == ThreadState::READY) {
|
||||||
this->eventManager.triggerEvent(std::make_shared<Events::ShutdownTargetController>());
|
this->eventManager.triggerEvent(std::make_shared<Events::ShutdownTargetController>());
|
||||||
this->applicationEventListener->waitForEvent<Events::TargetControllerThreadStateChanged>(
|
this->applicationEventListener->waitForEvent<Events::TargetControllerThreadStateChanged>(
|
||||||
@@ -299,7 +299,7 @@ void Application::stopDebugServer() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto debugServerState = this->debugServer->getState();
|
auto debugServerState = this->debugServer->getThreadState();
|
||||||
if (debugServerState == ThreadState::STARTING || debugServerState == ThreadState::READY) {
|
if (debugServerState == ThreadState::STARTING || debugServerState == ThreadState::READY) {
|
||||||
this->eventManager.triggerEvent(std::make_shared<Events::ShutdownDebugServer>());
|
this->eventManager.triggerEvent(std::make_shared<Events::ShutdownDebugServer>());
|
||||||
this->applicationEventListener->waitForEvent<Events::DebugServerThreadStateChanged>(
|
this->applicationEventListener->waitForEvent<Events::DebugServerThreadStateChanged>(
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ void DebugServer::run() {
|
|||||||
|
|
||||||
Logger::info("DebugServer ready");
|
Logger::info("DebugServer ready");
|
||||||
|
|
||||||
while (this->getState() == ThreadState::READY) {
|
while (this->getThreadState() == ThreadState::READY) {
|
||||||
this->serve();
|
this->serve();
|
||||||
this->eventListener->dispatchCurrentEvents();
|
this->eventListener->dispatchCurrentEvents();
|
||||||
}
|
}
|
||||||
@@ -41,19 +41,19 @@ void DebugServer::startup() {
|
|||||||
);
|
);
|
||||||
|
|
||||||
this->init();
|
this->init();
|
||||||
this->setStateAndEmitEvent(ThreadState::READY);
|
this->setThreadStateAndEmitEvent(ThreadState::READY);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebugServer::shutdown() {
|
void DebugServer::shutdown() {
|
||||||
if (this->getState() == ThreadState::STOPPED || this->getState() == ThreadState::SHUTDOWN_INITIATED) {
|
if (this->getThreadState() == ThreadState::STOPPED || this->getThreadState() == ThreadState::SHUTDOWN_INITIATED) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this->setState(ThreadState::SHUTDOWN_INITIATED);
|
this->setThreadState(ThreadState::SHUTDOWN_INITIATED);
|
||||||
Logger::info("Shutting down DebugServer");
|
Logger::info("Shutting down DebugServer");
|
||||||
this->close();
|
this->close();
|
||||||
this->interruptEventNotifier->close();
|
this->interruptEventNotifier->close();
|
||||||
this->setStateAndEmitEvent(ThreadState::STOPPED);
|
this->setThreadStateAndEmitEvent(ThreadState::STOPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DebugServer::onShutdownDebugServerEvent(EventPointer<Events::ShutdownDebugServer> event) {
|
void DebugServer::onShutdownDebugServerEvent(EventPointer<Events::ShutdownDebugServer> event) {
|
||||||
|
|||||||
@@ -47,12 +47,12 @@ namespace Bloom::DebugServers
|
|||||||
* @param state
|
* @param state
|
||||||
* @param emitEvent
|
* @param emitEvent
|
||||||
*/
|
*/
|
||||||
void setStateAndEmitEvent(ThreadState state) {
|
void setThreadStateAndEmitEvent(ThreadState state) {
|
||||||
Thread::setState(state);
|
Thread::setThreadState(state);
|
||||||
this->eventManager.triggerEvent(
|
this->eventManager.triggerEvent(
|
||||||
std::make_shared<Events::DebugServerThreadStateChanged>(state)
|
std::make_shared<Events::DebugServerThreadStateChanged>(state)
|
||||||
);
|
);
|
||||||
};
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles a shutdown request.
|
* Handles a shutdown request.
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ namespace Bloom
|
|||||||
SyncSafe<ThreadState> state = SyncSafe<ThreadState>(ThreadState::UNINITIALISED);
|
SyncSafe<ThreadState> state = SyncSafe<ThreadState>(ThreadState::UNINITIALISED);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void setState(ThreadState state) {
|
virtual void setThreadState(ThreadState state) {
|
||||||
this->state.setValue(state);
|
this->state.setValue(state);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ namespace Bloom
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual ThreadState getState() {
|
virtual ThreadState getThreadState() {
|
||||||
return this->state.getValue();
|
return this->state.getValue();
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
#include <thread>
|
|
||||||
#include <typeindex>
|
#include <typeindex>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
|
|
||||||
@@ -18,7 +17,7 @@ void Insight::run() {
|
|||||||
this->startup();
|
this->startup();
|
||||||
|
|
||||||
this->workerThread->start();
|
this->workerThread->start();
|
||||||
this->setState(ThreadState::READY);
|
this->setThreadState(ThreadState::READY);
|
||||||
Logger::info("Insight ready");
|
Logger::info("Insight ready");
|
||||||
this->application->exec();
|
this->application->exec();
|
||||||
|
|
||||||
@@ -36,7 +35,7 @@ void Insight::run() {
|
|||||||
|
|
||||||
void Insight::startup() {
|
void Insight::startup() {
|
||||||
Logger::info("Starting Insight");
|
Logger::info("Starting Insight");
|
||||||
this->setState(ThreadState::STARTING);
|
this->setThreadState(ThreadState::STARTING);
|
||||||
this->eventManager.registerListener(this->eventListener);
|
this->eventManager.registerListener(this->eventListener);
|
||||||
|
|
||||||
this->eventListener->registerCallbackForEventType<ShutdownApplication>(
|
this->eventListener->registerCallbackForEventType<ShutdownApplication>(
|
||||||
@@ -97,7 +96,7 @@ void Insight::startup() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void Insight::shutdown() {
|
void Insight::shutdown() {
|
||||||
if (this->getState() == ThreadState::STOPPED) {
|
if (this->getThreadState() == ThreadState::STOPPED) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +111,7 @@ void Insight::shutdown() {
|
|||||||
this->application->exit(0);
|
this->application->exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->setState(ThreadState::STOPPED);
|
this->setThreadState(ThreadState::STOPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Insight::onShutdownApplicationEvent(EventPointer<ShutdownApplication>) {
|
void Insight::onShutdownApplicationEvent(EventPointer<ShutdownApplication>) {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ void InsightWorker::startup() {
|
|||||||
this->eventDispatchTimer->start(5);
|
this->eventDispatchTimer->start(5);
|
||||||
|
|
||||||
this->eventManager.triggerEvent(
|
this->eventManager.triggerEvent(
|
||||||
std::make_shared<Events::InsightStateChanged>(ThreadState::READY)
|
std::make_shared<Events::InsightThreadStateChanged>(ThreadState::READY)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ void SignalHandler::run() {
|
|||||||
int signalNumber = 0;
|
int signalNumber = 0;
|
||||||
|
|
||||||
Logger::debug("SignalHandler ready");
|
Logger::debug("SignalHandler ready");
|
||||||
while(Thread::getState() == ThreadState::READY) {
|
while(Thread::getThreadState() == ThreadState::READY) {
|
||||||
if (sigwait(&signalSet, &signalNumber) == 0) {
|
if (sigwait(&signalSet, &signalNumber) == 0) {
|
||||||
Logger::debug("SIGNAL " + std::to_string(signalNumber) + " received");
|
Logger::debug("SIGNAL " + std::to_string(signalNumber) + " received");
|
||||||
if (this->handlersMappedBySignalNum.contains(signalNumber)) {
|
if (this->handlersMappedBySignalNum.contains(signalNumber)) {
|
||||||
@@ -29,7 +29,7 @@ void SignalHandler::run() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Logger::debug("SignalHandler shutting down");
|
Logger::debug("SignalHandler shutting down");
|
||||||
Thread::setState(ThreadState::STOPPED);
|
Thread::setThreadState(ThreadState::STOPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SignalHandler::startup() {
|
void SignalHandler::startup() {
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ namespace Bloom
|
|||||||
* Triggers the shutdown of the SignalHandler thread.
|
* Triggers the shutdown of the SignalHandler thread.
|
||||||
*/
|
*/
|
||||||
void triggerShutdown() {
|
void triggerShutdown() {
|
||||||
this->setState(ThreadState::SHUTDOWN_INITIATED);
|
this->setThreadState(ThreadState::SHUTDOWN_INITIATED);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ void TargetController::run() {
|
|||||||
try {
|
try {
|
||||||
this->startup();
|
this->startup();
|
||||||
|
|
||||||
this->setStateAndEmitEvent(ThreadState::READY);
|
this->setThreadStateAndEmitEvent(ThreadState::READY);
|
||||||
Logger::debug("TargetController ready and waiting for events.");
|
Logger::debug("TargetController ready and waiting for events.");
|
||||||
|
|
||||||
while (this->getState() == ThreadState::READY) {
|
while (this->getState() == ThreadState::READY) {
|
||||||
@@ -43,7 +43,7 @@ void TargetController::run() {
|
|||||||
void TargetController::startup() {
|
void TargetController::startup() {
|
||||||
this->setName("TC");
|
this->setName("TC");
|
||||||
Logger::info("Starting TargetController");
|
Logger::info("Starting TargetController");
|
||||||
this->setState(ThreadState::STARTING);
|
this->setThreadState(ThreadState::STARTING);
|
||||||
this->blockAllSignalsOnCurrentThread();
|
this->blockAllSignalsOnCurrentThread();
|
||||||
this->eventManager.registerListener(this->eventListener);
|
this->eventManager.registerListener(this->eventListener);
|
||||||
|
|
||||||
@@ -477,7 +477,7 @@ void TargetController::onSetProgramCounterEvent(EventPointer<Events::SetProgramC
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: remove this
|
// TODO: remove this
|
||||||
void TargetController::onInsightStateChangedEvent(EventPointer<Events::InsightStateChanged> event) {
|
void TargetController::onInsightStateChangedEvent(EventPointer<Events::InsightThreadStateChanged> event) {
|
||||||
if (event->getState() == ThreadState::READY) {
|
if (event->getState() == ThreadState::READY) {
|
||||||
/*
|
/*
|
||||||
* Insight has just started up.
|
* Insight has just started up.
|
||||||
|
|||||||
@@ -160,12 +160,12 @@ namespace Bloom
|
|||||||
* @param state
|
* @param state
|
||||||
* @param emitEvent
|
* @param emitEvent
|
||||||
*/
|
*/
|
||||||
void setStateAndEmitEvent(ThreadState state) {
|
void setThreadStateAndEmitEvent(ThreadState state) {
|
||||||
this->setState(state);
|
this->setThreadState(state);
|
||||||
this->eventManager.triggerEvent(
|
this->eventManager.triggerEvent(
|
||||||
std::make_shared<Events::TargetControllerStateChanged>(state)
|
std::make_shared<Events::TargetControllerThreadStateChanged>(state)
|
||||||
);
|
);
|
||||||
};
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Installs Bloom's udev rules on user's machine. Rules are copied from build/Distribution/Resources/UdevRules
|
* Installs Bloom's udev rules on user's machine. Rules are copied from build/Distribution/Resources/UdevRules
|
||||||
|
|||||||
Reference in New Issue
Block a user