From 2c4330e7c01cf404406dd3380e64304460b29b02 Mon Sep 17 00:00:00 2001 From: johannst Date: Mon, 5 Oct 2020 23:03:03 +0200 Subject: added doc on thread & executor --- lib/executor.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'lib/executor.h') diff --git a/lib/executor.h b/lib/executor.h index f04f3f1..0f2eca9 100644 --- a/lib/executor.h +++ b/lib/executor.h @@ -8,16 +8,26 @@ #include namespace nMatcha { + // Cooperative user thread scheduler. + // + // The executor is responsible to schedule the next user thread after one + // thread yielded, as long as there are user threads that didn't finish. + // + // When a `Thread` instance is spawned on an `Executor`, its ownership is + // transfered to the executor. + // struct Executor { Executor(const Executor&) = delete; Executor& operator=(const Executor&) = delete; Executor() = default; - const void* getStackPtr() const { - return mStackPtr; - } + const void* getStackPtr() const; + // Spawn an user thread on the executor. void spawn(std::unique_ptr t); + + // Run the executor until all user threads are finished. + // This example executor implements round robin scheduling. void run(); private: -- cgit v1.2.3