11#ifndef CHAISCRIPT_THREADING_HPP_
12#define CHAISCRIPT_THREADING_HPP_
15#include <unordered_map>
17#ifndef CHAISCRIPT_NO_THREADS
21#ifndef CHAISCRIPT_NO_THREADS_WARNING
22#pragma message ("ChaiScript is compiling without thread safety.")
46#ifndef CHAISCRIPT_NO_THREADS
62 using std::recursive_mutex;
105 static std::unordered_map<const void*, T> &t()
107 thread_local std::unordered_map<const void *, T> my_t;
140 class recursive_mutex {};
Definition chaiscript_threading.hpp:68
const T * operator->() const
Definition chaiscript_threading.hpp:81
Thread_Storage & operator=(Thread_Storage &&)=delete
Thread_Storage(const Thread_Storage &)=delete
T * operator->()
Definition chaiscript_threading.hpp:91
~Thread_Storage()
Definition chaiscript_threading.hpp:76
T & operator*()
Definition chaiscript_threading.hpp:96
Thread_Storage(Thread_Storage &&)=delete
void * m_key
Definition chaiscript_threading.hpp:102
const T & operator*() const
Definition chaiscript_threading.hpp:86
Thread_Storage & operator=(const Thread_Storage &)=delete
Definition chaiscript_threading.hpp:44
std::lock_guard< T > lock_guard
Definition chaiscript_threading.hpp:55
std::unique_lock< T > shared_lock
Definition chaiscript_threading.hpp:52
std::mutex shared_mutex
Definition chaiscript_threading.hpp:58
std::unique_lock< T > unique_lock
Definition chaiscript_threading.hpp:49
Classes and functions reserved for internal use. Items in this namespace are not supported.
Namespace chaiscript contains every API call that the average user will be concerned with.