|
Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
|
#include "PTL/Globals.hh"#include "PTL/Types.hh"#include <chrono>#include <condition_variable>#include <future>#include <mutex>#include <thread>#include <vector>Go to the source code of this file.
Namespaces | |
| namespace | PTL |
| namespace | PTL::ThisThread |
| namespace | PTL::Threading |
Macros | |
| #define | THREADSLEEP(tick) std::this_thread::sleep_for(std::chrono::seconds(tick)) |
| #define | MUTEX_INITIALIZER {} |
| #define | MUTEXINIT(mutex) |
| #define | MUTEXDESTROY(mutex) |
| #define | MUTEXLOCK(mutex) |
| #define | MUTEXUNLOCK(mutex) |
| #define | THREADJOIN(worker) (worker).join() |
| #define | CONDITION_INITIALIZER {} |
| #define | CONDITIONWAIT(cond, lock) (cond)->wait(*lock); |
| #define | CONDITIONWAITLAMBDA(cond, lock, lambda) (cond)->wait(*lock, lambda); |
| #define | CONDITIONNOTIFY(cond) (cond)->notify_one(); |
| #define | CONDITIONBROADCAST(cond) (cond)->notify_all(); |
Typedefs | |
| template<typename Tp > | |
| using | PTL::Future = std::future< Tp > |
| template<typename Tp > | |
| using | PTL::SharedFuture = std::shared_future< Tp > |
| template<typename Tp > | |
| using | PTL::Promise = std::promise< Tp > |
| typedef std::mutex | PTL::Mutex |
| typedef std::recursive_mutex | PTL::RecursiveMutex |
| typedef void * | PTL::ThreadFunReturnType |
| typedef void * | PTL::ThreadFunArgType |
| typedef int(* | PTL::thread_lock) (Mutex *) |
| typedef int(* | PTL::thread_unlock) (Mutex *) |
| typedef std::thread | PTL::Thread |
| typedef std::thread::native_handle_type | PTL::NativeThread |
| typedef std::thread::id | PTL::Pid_t |
| typedef std::condition_variable | PTL::Condition |
| typedef Thread::id | PTL::ThreadId |
Enumerations | |
| enum | { PTL::Threading::SEQUENTIAL_ID = -2 , PTL::Threading::MASTER_ID = -1 , PTL::Threading::WORKER_ID = 0 , PTL::Threading::GENERICTHREAD_ID = -1000 } |
Functions | |
| template<typename Tp > | |
| Mutex & | PTL::TypeMutex (const unsigned int &_n=0) |
| template<typename Tp > | |
| RecursiveMutex & | PTL::TypeRecursiveMutex (const unsigned int &_n=0) |
| template<typename WorkerT , typename FuncT , typename... Args> | |
| void | PTL::THREADCREATE (WorkerT *&worker, FuncT func, Args... args) |
| Pid_t | PTL::Threading::GetPidId () |
| unsigned | PTL::Threading::GetNumberOfCores () |
| int | PTL::Threading::GetThreadId () |
| bool | PTL::Threading::IsWorkerThread () |
| bool | PTL::Threading::IsMasterThread () |
| void | PTL::Threading::SetThreadId (int aNewValue) |
| bool | PTL::Threading::SetPinAffinity (int idx, NativeThread &at) |
| int | PTL::Threading::WorkerThreadLeavesPool () |
| int | PTL::Threading::WorkerThreadJoinsPool () |
| int | PTL::Threading::GetNumberOfRunningWorkerThreads () |
| #define CONDITION_INITIALIZER {} |
Definition at line 190 of file Threading.hh.
| #define CONDITIONBROADCAST | ( | cond | ) | (cond)->notify_all(); |
Definition at line 195 of file Threading.hh.
| #define CONDITIONNOTIFY | ( | cond | ) | (cond)->notify_one(); |
Definition at line 194 of file Threading.hh.
| #define CONDITIONWAIT | ( | cond, | |
| lock | |||
| ) | (cond)->wait(*lock); |
Definition at line 192 of file Threading.hh.
| #define CONDITIONWAITLAMBDA | ( | cond, | |
| lock, | |||
| lambda | |||
| ) | (cond)->wait(*lock, lambda); |
Definition at line 193 of file Threading.hh.
| #define MUTEX_INITIALIZER {} |
Definition at line 80 of file Threading.hh.
| #define MUTEXDESTROY | ( | mutex | ) |
Definition at line 85 of file Threading.hh.
| #define MUTEXINIT | ( | mutex | ) |
Definition at line 82 of file Threading.hh.
| #define MUTEXLOCK | ( | mutex | ) |
Definition at line 161 of file Threading.hh.
| #define MUTEXUNLOCK | ( | mutex | ) |
Definition at line 165 of file Threading.hh.
| #define THREADJOIN | ( | worker | ) | (worker).join() |
Definition at line 171 of file Threading.hh.
| #define THREADSLEEP | ( | tick | ) | std::this_thread::sleep_for(std::chrono::seconds(tick)) |
Definition at line 42 of file Threading.hh.