Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Thread.h File Reference
#include "Stroika/Foundation/StroikaPreComp.h"
#include <functional>
#include <map>
#include <optional>
#include <thread>
#include "Stroika/Foundation/Common/Common.h"
#include "Stroika/Foundation/Debug/AssertExternallySynchronizedMutex.h"
#include "Stroika/Foundation/Execution/Exceptions.h"
#include "Stroika/Foundation/Execution/Signals.h"
#include "Stroika/Foundation/Time/Realtime.h"
#include "Stroika/Foundation/Traversal/Iterable.h"
#include "Thread.inl"

Go to the source code of this file.

Classes

struct  Stroika::Foundation::Execution::Thread::Configuration
 EXPERIMENTAL SUPPORT FOR THREAD STACK (and maybe other) settings. More...
 
class  Stroika::Foundation::Execution::Thread::Ptr
 Thread::Ptr is a (unsynchronized) smart pointer referencing an internally synchronized std::thread object (rep), with special feautres, including cancelation. More...
 
class  Stroika::Foundation::Execution::Thread::CleanupPtr
 
class  Stroika::Foundation::Execution::Thread::IndexRegistrar
 
class  Stroika::Foundation::Execution::Thread::SuppressInterruptionInContext
 

Namespaces

namespace  Stroika::Foundation
 
namespace  Stroika::Foundation::Characters
 
namespace  Stroika::Foundation::Execution
 
namespace  Stroika::Foundation::Execution::Thread
 Thread is a namespace for Stroika thread code,.
 

Macros

#define qStroika_Foundation_Execution_Thread_SupportThreadStatistics   qStroika_Foundation_Debug_AssertionsChecked
 

Typedefs

using Stroika::Foundation::Execution::Thread::IDType = thread::id
 
using Stroika::Foundation::Execution::Thread::NativeHandleType = thread::native_handle_type
 

Enumerations

enum  Stroika::Foundation::Execution::Thread::AutoStartFlag
 
enum class  Stroika::Foundation::Execution::Thread::Status : uint8_t
 
enum class  Stroika::Foundation::Execution::Thread::Priority
 

Functions

Configuration Stroika::Foundation::Execution::Thread::DefaultConfiguration () noexcept
 
Ptr Stroika::Foundation::Execution::Thread::New (const function< void()> &fun2CallOnce, const optional< Characters::String > &name, const optional< Configuration > &configuration)
 
void Stroika::Foundation::Execution::Thread::Start (const Traversal::Iterable< Ptr > &threads)
 
void Stroika::Foundation::Execution::Thread::Abort (const Traversal::Iterable< Ptr > &threads)
 foreach Thread t: t.Abort ()
 
void Stroika::Foundation::Execution::Thread::WaitForDone (const Traversal::Iterable< Ptr > &threads, Time::DurationSeconds timeout=Time::kInfinity)
 
void Stroika::Foundation::Execution::Thread::WaitForDoneUntil (const Traversal::Iterable< Ptr > &threads, Time::TimePointSeconds timeoutAt)
 
void Stroika::Foundation::Execution::Thread::AbortAndWaitForDone (const Traversal::Iterable< Ptr > &threads, Time::DurationSeconds timeout=Time::kInfinity)
 
 
void Stroika::Foundation::Execution::Thread::AbortAndWaitForDoneUntil (const Traversal::Iterable< Ptr > &threads, Time::TimePointSeconds timeoutAt)
 
wstring Stroika::Foundation::Execution::Thread::FormatThreadID (Thread::IDType threadID, const FormatThreadInfo &formatInfo={})
 
Ptr Stroika::Foundation::Execution::Thread::GetCurrent ()
 
bool Stroika::Foundation::Execution::Thread::IsCurrentThreadInterruptible ()
 
void Stroika::Foundation::Execution::Thread::CheckForInterruption ()
 
dont_inline void Stroika::Foundation::Execution::Thread::Yield ()
 calls CheckForInterruption, and std::this_thread::yield ()
 

Detailed Description

TODO

Definition in file Thread.h.

Macro Definition Documentation

◆ qStroika_Foundation_Execution_Thread_SupportThreadStatistics

#define qStroika_Foundation_Execution_Thread_SupportThreadStatistics   qStroika_Foundation_Debug_AssertionsChecked

This is only meant for debugging. If true, track the running threads (and provide API to access) and DbgTrace() automatically in construction/destruction.

Definition at line 38 of file Thread.h.