Adds further ext deps as-is binaries copies from customers env.
Qt6 Migration CI / migrate (push) Canceled after 0s
Qt6 Migration CI / migrate (push) Canceled after 0s
This commit is contained in:
3700 files changed
+2132394
No files matched your search
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
#include "ddkit/base/Thread.hpp"
|
||||
|
||||
namespace ddkit {
|
||||
namespace base {
|
||||
|
||||
/// @brief ThreadSync may be used instead of Thread, if 'start()' shall be 'synchronous', that is
|
||||
/// - the os-thread, which is calling 'start()' on this obj, is blocked until
|
||||
/// - the new os-thread is created and the intern-thread-function was started
|
||||
/// - the overridden 'run()'-method (Derivee from ThreadSync) is started
|
||||
/// - the implementation of that 'run'-method decided to call 'ready()'
|
||||
/// - (as first command, or after some initialization-steps, which went for some reason not in ctor, but run)
|
||||
class ThreadSync : public Thread {
|
||||
|
||||
public:
|
||||
ThreadSync(const std::string& name);
|
||||
virtual ~ThreadSync() override;
|
||||
|
||||
protected:
|
||||
void ready();
|
||||
|
||||
private:
|
||||
std::recursive_mutex m_mutex;
|
||||
std::condition_variable_any m_condition;
|
||||
|
||||
bool m_isReady; // did the thread call "ready()" for signaling "fully" starting up?
|
||||
|
||||
void waitForReadyIf() override; // called by Thread
|
||||
|
||||
ThreadSync(ThreadSync const&) = delete;
|
||||
void operator=(ThreadSync const&) = delete;
|
||||
};
|
||||
|
||||
|
||||
} // namespace base
|
||||
} // namespace ddkit
|
||||
Reference in new issue
Block a user