![]() |
libfilezilla
|
Spawns and represents a new thread of execution. More...
#include <thread.hpp>

Public Member Functions | |
| virtual | ~thread () |
Calls std::abort if the thread has not been joined. More... | |
| bool | run () |
| Start the thread. More... | |
| void | join () |
| Join the thread. More... | |
| bool | joinable () const |
| A thread is joinable after having been started and before it has been joined. More... | |
Protected Member Functions | |
| virtual void | entry ()=0 |
| The thread's entry point, override in your derived class. | |
Friends | |
| class | impl |
Spawns and represents a new thread of execution.
This is a replacement of std::thread. Unfortunately std::thread isn't implemented on all MinGW flavors. Most notably, MinGW as shipped by Debian Jessie does not have std::thread.
This class only supports joinable threads (see remark). You MUST join threads in the destructor of the outermost derived class. ~thread() calls std::abort() if join has not previously been called.
|
virtual |
Calls std::abort if the thread has not been joined.
To avoid race conditions, all threads need to be joined no later than in the destructor of the most derived class.
| void join | ( | ) |
Join the thread.
join blocks until the spawn thread has quit.
You must call this at the latest in the destructor of the most-derived class.
Must not be called from the spawned thread.
After a successful join you can call run again to spawn another thread.
| bool joinable | ( | ) | const |
A thread is joinable after having been started and before it has been joined.
Must not be called from the spawned thread.
| bool run | ( | ) |
Start the thread.
If a thread has already been started and not yet joined, this function fails.
1.8.14