Lumiera
0.pre.03
»edit your freedom«
|
PImpl within SteamDispatcher to implement the Session Loop Thread. During the lifetime of this object...
Definition at line 119 of file steam-dispatcher.cpp.
Public Member Functions | |
template<typename FUN > | |
DispatcherLoop (FUN &&atExit) | |
start the session loop thread More... | |
void | activateCommandProecssing () |
void | awaitStateProcessed () const |
void | clear () override |
void | deactivateCommandProecssing () |
void | enqueue (Command &&cmd) override |
void | requestStop () noexcept |
size_t | size () const |
Public Member Functions inherited from CommandDispatch | |
virtual | ~CommandDispatch () |
this is an interface | |
Private Types | |
using | Launch = lib::ThreadHookable::Launch |
using | ServiceHandle = lib::DependInject< SessionCommandService >::ServiceInstance<> |
Private Member Functions | |
void | awaitAction () |
bool | isStateSynched () const |
void | processCommands () |
void | runSessionThread () |
any operation running in the Session thread is started from here. More... | |
void | startBuilder () |
void | updateState () |
Private Attributes | |
ServiceHandle | commandService_ |
manage the primary public Session interface | |
string | error_ |
SyncBarrier | init_ |
Looper | looper_ |
CommandQueue | queue_ |
ThreadHookable | thread_ |
Additional Inherited Members | |
Static Public Member Functions inherited from Sync< RecursiveLock_Waitable > | |
static Monitor & | getMonitor (Sync const *forThis) |
|
inline |
start the session loop thread
notification | callback to invoke on thread termination |
Definition at line 145 of file steam-dispatcher.cpp.
References ThreadWrapper::detach_thread_from_wrapper(), ERROR_LOG_AND_IGNORE, and DispatcherLoop::runSessionThread().
|
inlineprivate |
any operation running in the Session thread is started from here.
When this loop terminates, the »session subsystem« shuts down.
Definition at line 251 of file steam-dispatcher.cpp.
References cStr(), Looper::hasPendingChanges(), SteamDispatcher::instance, ThreadWrapper::invokedWithinThread(), lumiera_error(), Looper::markStateProcessed(), Looper::requireAction(), and Looper::shallLoop().
Referenced by DispatcherLoop::DispatcherLoop().