Open Lighting Architecture  Latest Git
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Protected Member Functions | List of all members
ola::thread::SignalThread Class Reference

Detailed Description

Signals and threads don't play nicely together. Consider the following:

The recommended way to deal with this is to run a separate thread, whose sole purpose is to wait for signals. See section 12.8 of APUE.

To avoid this we do the following:

Inheritance diagram for ola::thread::SignalThread:
Inheritance graph
[legend]
Collaboration diagram for ola::thread::SignalThread:
Collaboration graph
[legend]

Public Types

typedef ola::Callback0< void > SignalHandler
 

Public Member Functions

bool InstallSignalHandler (int signal, SignalHandler *handler)
 Install a signal handler for the given signal. More...
 
- Public Member Functions inherited from ola::thread::Thread
 Thread (const Options &options=Options())
 Create a new thread with the specified thread options. More...
 
virtual ~Thread ()
 Destructor.
 
virtual bool Start ()
 Start the thread and wait for the thread to be running. More...
 
virtual bool FastStart ()
 Start the thread and return immediately. More...
 
virtual bool Join (void *ptr=NULL)
 Join this thread. More...
 
bool IsRunning ()
 Check if the thread is running. More...
 
ThreadId Id () const
 Return the thread id. More...
 
std::string Name () const
 Return the thread name. More...
 

Protected Member Functions

void * Run ()
 Entry point into the thread.
 

Additional Inherited Members

- Static Public Member Functions inherited from ola::thread::Thread
static ThreadId Self ()
 Returns the current thread's id. More...
 

Member Function Documentation

bool ola::thread::SignalThread::InstallSignalHandler ( int  signal,
SignalHandler handler 
)

Install a signal handler for the given signal.

This can't be called once the thread has stared.


The documentation for this class was generated from the following files: