![]() |
Open Lighting Architecture
Latest Git
|
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:


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... | |
| 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.
1.8.13