These changes should have been in a previous commit, for tidying the SyncSafe class
This commit is contained in:
@@ -8,14 +8,14 @@ namespace Bloom
|
|||||||
|
|
||||||
std::set<Events::EventType> EventListener::getRegisteredEventTypes() {
|
std::set<Events::EventType> EventListener::getRegisteredEventTypes() {
|
||||||
auto lock = this->registeredEventTypes.acquireLock();
|
auto lock = this->registeredEventTypes.acquireLock();
|
||||||
return this->registeredEventTypes.getReference();
|
return this->registeredEventTypes.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
void EventListener::registerEvent(SharedGenericEventPointer event) {
|
void EventListener::registerEvent(SharedGenericEventPointer event) {
|
||||||
Logger::debug("Event \"" + event->getName() + "\" (" + std::to_string(event->id)
|
Logger::debug("Event \"" + event->getName() + "\" (" + std::to_string(event->id)
|
||||||
+ ") registered for listener " + this->name);
|
+ ") registered for listener " + this->name);
|
||||||
auto queueLock = this->eventQueueByEventType.acquireLock();
|
auto queueLock = this->eventQueueByEventType.acquireLock();
|
||||||
auto& eventQueueByType = this->eventQueueByEventType.getReference();
|
auto& eventQueueByType = this->eventQueueByEventType.getValue();
|
||||||
|
|
||||||
eventQueueByType[event->getType()].push(std::move(event));
|
eventQueueByType[event->getType()].push(std::move(event));
|
||||||
this->eventQueueByEventTypeCV.notify_all();
|
this->eventQueueByEventTypeCV.notify_all();
|
||||||
@@ -27,7 +27,7 @@ namespace Bloom
|
|||||||
|
|
||||||
void EventListener::waitAndDispatch(int msTimeout) {
|
void EventListener::waitAndDispatch(int msTimeout) {
|
||||||
auto queueLock = this->eventQueueByEventType.acquireLock();
|
auto queueLock = this->eventQueueByEventType.acquireLock();
|
||||||
auto& eventQueueByType = this->eventQueueByEventType.getReference();
|
auto& eventQueueByType = this->eventQueueByEventType.getValue();
|
||||||
auto registeredEventTypes = this->getRegisteredEventTypes();
|
auto registeredEventTypes = this->getRegisteredEventTypes();
|
||||||
std::optional<SharedGenericEventPointer> event;
|
std::optional<SharedGenericEventPointer> event;
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ namespace Bloom
|
|||||||
|
|
||||||
// Dispatch the event to all registered handlers
|
// Dispatch the event to all registered handlers
|
||||||
auto mappingLock = this->eventTypeToCallbacksMapping.acquireLock();
|
auto mappingLock = this->eventTypeToCallbacksMapping.acquireLock();
|
||||||
auto& callbacks = this->eventTypeToCallbacksMapping.getReference().find(event->getType())->second;
|
auto& callbacks = this->eventTypeToCallbacksMapping.getValue().find(event->getType())->second;
|
||||||
mappingLock.unlock();
|
mappingLock.unlock();
|
||||||
|
|
||||||
for (auto& callback : callbacks) {
|
for (auto& callback : callbacks) {
|
||||||
@@ -79,7 +79,7 @@ namespace Bloom
|
|||||||
|
|
||||||
std::vector<SharedGenericEventPointer> EventListener::getEvents() {
|
std::vector<SharedGenericEventPointer> EventListener::getEvents() {
|
||||||
auto queueLock = this->eventQueueByEventType.acquireLock();
|
auto queueLock = this->eventQueueByEventType.acquireLock();
|
||||||
auto& eventQueueByType = this->eventQueueByEventType.getReference();
|
auto& eventQueueByType = this->eventQueueByEventType.getValue();
|
||||||
std::vector<SharedGenericEventPointer> output;
|
std::vector<SharedGenericEventPointer> output;
|
||||||
|
|
||||||
for (auto& eventQueue: eventQueueByType) {
|
for (auto& eventQueue: eventQueueByType) {
|
||||||
@@ -102,6 +102,6 @@ namespace Bloom
|
|||||||
|
|
||||||
void EventListener::clearAllCallbacks() {
|
void EventListener::clearAllCallbacks() {
|
||||||
auto lock = this->eventTypeToCallbacksMapping.acquireLock();
|
auto lock = this->eventTypeToCallbacksMapping.acquireLock();
|
||||||
this->eventTypeToCallbacksMapping.getReference().clear();
|
this->eventTypeToCallbacksMapping.getValue().clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ namespace Bloom
|
|||||||
auto taskQueueLock = this->queuedTasks.acquireLock();
|
auto taskQueueLock = this->queuedTasks.acquireLock();
|
||||||
task->moveToThread(this->thread());
|
task->moveToThread(this->thread());
|
||||||
task->setParent(this);
|
task->setParent(this);
|
||||||
this->queuedTasks.getReference().push(task);
|
this->queuedTasks.getValue().push(task);
|
||||||
emit this->taskQueued();
|
emit this->taskQueued();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ namespace Bloom
|
|||||||
std::optional<InsightWorkerTask*> InsightWorker::getQueuedTask() {
|
std::optional<InsightWorkerTask*> InsightWorker::getQueuedTask() {
|
||||||
auto task = std::optional<InsightWorkerTask*>();
|
auto task = std::optional<InsightWorkerTask*>();
|
||||||
|
|
||||||
auto& queuedTasks = this->queuedTasks.getReference();
|
auto& queuedTasks = this->queuedTasks.getValue();
|
||||||
auto taskQueueLock = this->queuedTasks.acquireLock();
|
auto taskQueueLock = this->queuedTasks.acquireLock();
|
||||||
|
|
||||||
if (!queuedTasks.empty()) {
|
if (!queuedTasks.empty()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user