diff --git a/include/chaiscript/chaiscript_threading.hpp b/include/chaiscript/chaiscript_threading.hpp index f4f75e5..a8d8d8c 100644 --- a/include/chaiscript/chaiscript_threading.hpp +++ b/include/chaiscript/chaiscript_threading.hpp @@ -8,7 +8,9 @@ #define CHAISCRIPT_THREADING_HPP_ #ifndef CHAISCRIPT_NO_THREADS -#include +#include +#include +#include #else #pragma message ("ChaiScript is compiling without thread safety.") #endif @@ -32,11 +34,33 @@ namespace chaiscript { #ifndef CHAISCRIPT_NO_THREADS - using boost::unique_lock; - using boost::shared_lock; - using boost::lock_guard; - using boost::shared_mutex; - using boost::recursive_mutex; + + template + class unique_lock : public std::unique_lock + { + public: + unique_lock(T &t) : std::unique_lock(t) {} + }; + + template + class shared_lock : public std::unique_lock + { + public: + shared_lock(T &t) : std::unique_lock(t) {} + void unlock() {} + }; + + template + class lock_guard : public std::lock_guard + { + public: + lock_guard(T &t) : std::lock_guard(t) {} + }; + + class shared_mutex : public std::mutex { }; + + using std::recursive_mutex; + /// Typesafe thread specific storage. If threading is enabled, this class uses boost::thread_specific_ptr. If