1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-23 14:07:42 +00:00

LibThreading: Add is_started state information to Thread

Users can now determine whether a thread has been started or not. A
started thread might also have already terminated.

Implementation note: We *could* detect this with pthread APIs maybe, but
this is much simpler.
This commit is contained in:
kleines Filmröllchen 2022-07-13 10:33:14 +02:00 committed by Linus Groh
parent 500dc83f32
commit 91913fba59
2 changed files with 3 additions and 0 deletions

View file

@ -45,6 +45,7 @@ void Threading::Thread::start()
VERIFY(rc == 0); VERIFY(rc == 0);
} }
dbgln("Started thread \"{}\", tid = {}", m_thread_name, m_tid); dbgln("Started thread \"{}\", tid = {}", m_thread_name, m_tid);
m_started = true;
} }
void Threading::Thread::detach() void Threading::Thread::detach()

View file

@ -32,6 +32,7 @@ public:
String thread_name() const { return m_thread_name; } String thread_name() const { return m_thread_name; }
pthread_t tid() const { return m_tid; } pthread_t tid() const { return m_tid; }
bool is_started() const { return m_started; }
private: private:
explicit Thread(Function<intptr_t()> action, StringView thread_name = {}); explicit Thread(Function<intptr_t()> action, StringView thread_name = {});
@ -39,6 +40,7 @@ private:
pthread_t m_tid { 0 }; pthread_t m_tid { 0 };
String m_thread_name; String m_thread_name;
bool m_detached { false }; bool m_detached { false };
bool m_started { false };
}; };
template<typename T> template<typename T>