ifw-slm 0.1.2
 
Loading...
Searching...
No Matches
killableActivity.hpp
Go to the documentation of this file.
1
15
16#ifndef IFWSLM_KILLABLE_ACTIVITY_HPP
17#define IFWSLM_KILLABLE_ACTIVITY_HPP
18
19#include <rad/activity.hpp>
20#include <atomic>
21#include <string>
22#include <thread>
23
24namespace ifw::slm {
25
26class KillableThreadActivity : public rad::ThreadBaseActivity {
27public:
28 using ThreadBaseActivity::ThreadBaseActivity;
29
32
33 virtual void Run() = 0;
34
35 pthread_t GetNativeHandle() const override;
36
37 bool IsThreadJoined() const override;
38
39protected:
40 void StartThread() override;
41 void JoinThread() override;
42
43 std::atomic<bool> m_killed{false};
44 std::atomic<int> m_thread_generation{0};
45
46private:
47 std::thread m_thread;
48};
49
50} // namespace ifw::slm
51
52#endif // IFWSLM_KILLABLE_ACTIVITY_HPP
KillableThreadActivity & operator=(const KillableThreadActivity &)=delete
std::atomic< bool > m_killed
Definition killableActivity.hpp:43
KillableThreadActivity(const KillableThreadActivity &)=delete
bool IsThreadJoined() const override
Definition killableActivity.cpp:22
void StartThread() override
Definition killableActivity.cpp:26
void JoinThread() override
Definition killableActivity.cpp:43
pthread_t GetNativeHandle() const override
Definition killableActivity.cpp:18
std::atomic< int > m_thread_generation
Definition killableActivity.hpp:44
Definition actionMgr.cpp:29