/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: ThreadWorkerQueueShim.cpp Date: 2022-3-9 Author: Reece ***/ #include #include "Async.hpp" #include "ThreadWorkerQueueShim.hpp" namespace Aurora::Async { void AsyncLoop::OnFrame() { if (this->commitPending_) { if (LoopQueue::Commit()) { this->commitPending_ = false; } } } bool AsyncLoop::AddCallback(const AuSPtr &source, const AuSPtr &subscriber) { auto ret = LoopQueue::AddCallback(source, subscriber); if (ret) { this->commitPending_ = true; } return ret; } bool AsyncLoop::AddCallbackEx(const AuSPtr &source, const AuSPtr &subscriber) { auto ret = LoopQueue::AddCallbackEx(source, subscriber); if (ret) { this->commitPending_ = true; } return ret; } bool AsyncLoop::AddCallback(const AuSPtr &subscriber) { auto ret = LoopQueue::AddCallback(subscriber); if (ret) { this->commitPending_ = true; } return ret; } bool AsyncLoop::Commit() { this->commitPending_ = true; return true; } }