diff --git a/src/proc/control/proc-dispatcher.cpp b/src/proc/control/proc-dispatcher.cpp index ed1b94fe3..89c18e654 100644 --- a/src/proc/control/proc-dispatcher.cpp +++ b/src/proc/control/proc-dispatcher.cpp @@ -21,6 +21,22 @@ * *****************************************************/ +/** @file proc-dispatcher.cpp + ** Implementation details of running commands and the builder. + ** The ProcDispatcher is at the heart of the session subsystem and implements + ** a (single) session thread to perform commands and trigger builder runs. + ** New commands can be enqueued with a dedicated CommandQueue, while the details + ** of operation control logic are encapsulated in a [logic component](\ref Looper). + ** + ** @todo as of 12/2016, implementation has been drafted and is very much WIP + ** @todo //////////////////////////////////////////////////////TODO ensure really every state change triggers a wakeup!!!!!!! + ** + ** @see ProcDispatcher + ** @see DispatcherLooper_test + ** @see CommandQueue_test + ** + */ + #include "lib/error.hpp" #include "include/logging.h" @@ -108,12 +124,14 @@ namespace control { /* === CommandDispatch interface === */ + //////////////////////////////////////////TODO notify!!!! on!! every!! state!! changing!! operation!! void clear() override { Lock sync(this); UNIMPLEMENTED ("clear the queue"); + //////////////////////////////////////////TODO notify!!!! } size_t @@ -129,7 +147,8 @@ namespace control { Lock sync(this); commandService_.reset(); // closes Session interface mustHalt_ = true; - UNIMPLEMENTED("*must* notify loop thread"); /////////////////TODO really? + UNIMPLEMENTED("*must* notify loop thread"); /////////////////TODO really? YES!!! + //////////////////////////////////////////TODO notify!!!! } void diff --git a/tests/core/proc/control/dispatcher-looper-test.cpp b/tests/core/proc/control/dispatcher-looper-test.cpp index 5634248e6..ca482ec71 100644 --- a/tests/core/proc/control/dispatcher-looper-test.cpp +++ b/tests/core/proc/control/dispatcher-looper-test.cpp @@ -93,6 +93,8 @@ namespace test { verifyWakeupActivity(); verifyShutdown_stops_processing(); verifyDisabling_stops_processing(); + verifyBuidlerStart(); + verifyCheckpoint(); } @@ -279,6 +281,20 @@ namespace test { CHECK (not looper.shallLoop()); CHECK ( looper.isDying()); } + + + void + verifyBuidlerStart() + { + UNIMPLEMENTED("verify the logic when builder gets triggered"); + } + + + void + verifyCheckpoint() + { + UNIMPLEMENTED("verify the semantics of reaching a checkpoint"); + } };