CompThreads: create execOpOnAllMindThreads common helper
This allows us to execute an op on all mind threads without having to repeatedly write loops. We've implemented wrappers to handle start, pause, resume, exit and JOLT sequences.
This commit is contained in:
@@ -39,7 +39,7 @@ public:
|
||||
boost::asio::io_service& getIoService(void) { return io_service; }
|
||||
|
||||
void initializeTls(void);
|
||||
const std::shared_ptr<ComponentThread> getSelf(void);
|
||||
static const std::shared_ptr<ComponentThread> getSelf(void);
|
||||
|
||||
static std::shared_ptr<ComponentThread> getComponentThread(
|
||||
ThreadId id = N_ITEMS)
|
||||
@@ -78,6 +78,28 @@ public:
|
||||
void exitThreadReq(std::function<void()> callback = nullptr);
|
||||
void pauseThreadReq(std::function<void()> callback = nullptr);
|
||||
void resumeThreadReq(std::function<void()> callback = nullptr);
|
||||
void joltThreadReq(std::function<void()> callback = nullptr);
|
||||
|
||||
// Convenience wrappers
|
||||
static void startAllMindThreadsReq(std::function<void()> callback = nullptr);
|
||||
static void pauseAllMindThreadsReq(std::function<void()> callback = nullptr);
|
||||
static void resumeAllMindThreadsReq(std::function<void()> callback = nullptr);
|
||||
static void exitAllMindThreadsReq(std::function<void()> callback = nullptr);
|
||||
static void joltAllMindThreadsReq(std::function<void()> callback = nullptr);
|
||||
|
||||
enum class ThreadOp
|
||||
{
|
||||
START,
|
||||
PAUSE,
|
||||
RESUME,
|
||||
EXIT,
|
||||
JOLT,
|
||||
N_ITEMS
|
||||
};
|
||||
static void execOpOnAllMindThreadsReq(
|
||||
ThreadOp op, std::function<void()> callback = nullptr);
|
||||
|
||||
// Intentionally doesn't take a callback.
|
||||
void exceptionInd(ComponentThread& thread);
|
||||
|
||||
public:
|
||||
|
||||
Reference in New Issue
Block a user