sigx++
2.0.1
|
base class denoting the ability to dispatch messages between threads. More...
#include <dispatcher.h>
Public Member Functions | |
dispatcher () | |
constructs the dispatcher | |
virtual | ~dispatcher ()=0 |
virtual void | send (tunnel_context_base *context) |
puts the tunnel context into the list of messages to dispatch | |
gint | queued_contexts () const |
threadhandle_type | creator_thread () const |
![]() | |
void * | operator new (std::size_t size) |
void | operator delete (void *p) |
void * | operator new[] (std::size_t size) |
void | operator delete[] (void *p) |
Static Public Attributes | |
static bool | deadlock_detection = false |
Whether deadlock detection is turned on. |
Protected Member Functions | |
bool | process_next () |
processes the next message in the queue. | |
void | test_calling_thread () |
![]() | |
operator_new () | |
~operator_new () |
base class denoting the ability to dispatch messages between threads.
A dispatcher holds a list of pointers to sigx::tunnel_context objects.
sigx::dispatcher::dispatcher | ( | ) |
constructs the dispatcher
|
pure virtual |
bad_caller |
References test_calling_thread().
|
inline |
|
protected |
processes the next message in the queue.
References sigx::tunnel_context_base::creator_thread(), deadlock_detection, sigx::tunnel_context_base::invoke(), sigx::tunnel_context_base::is_sync(), sigx::tunnel_context_base::is_valid(), and sigx::dld::make_thread_pair().
Referenced by sigx::glib_dispatcher::~glib_dispatcher().
gint sigx::dispatcher::queued_contexts | ( | ) | const |
|
virtual |
puts the tunnel context into the list of messages to dispatch
Reimplemented in sigx::glib_dispatcher.
References deadlock_detection, sigx::tunnel_context_base::is_sync(), and sigx::dld::make_thread_pair().
Referenced by sigx::tunnel_context_base::dispatch_me().
|
protected |
bad_caller |
Referenced by ~dispatcher(), and sigx::glib_dispatcher::~glib_dispatcher().
|
static |
Whether deadlock detection is turned on.
Set to `true" from the main thread (e.g. after Glib::thread_init()) to turn on the deadlock detection feature at runtime for synchronous messages. Defaults to false.
Referenced by process_next(), and send().