diff options
Diffstat (limited to 'src/engine/ThreadManager.hpp')
-rw-r--r-- | src/engine/ThreadManager.hpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/engine/ThreadManager.hpp b/src/engine/ThreadManager.hpp index 6821949c..26368deb 100644 --- a/src/engine/ThreadManager.hpp +++ b/src/engine/ThreadManager.hpp @@ -18,6 +18,7 @@ #ifndef THREADMANAGER_H #define THREADMANAGER_H +#include <cassert> #include "raul/Thread.hpp" namespace Ingen { @@ -36,6 +37,19 @@ public: inline static ThreadID current_thread_id() { return (ThreadID)Raul::Thread::get().context(); } + + inline static void assert_thread(ThreadID id) { + assert(single_threaded || current_thread_id() == id); + } + + inline static void assert_not_thread(ThreadID id) { + assert(single_threaded || current_thread_id() != id); + } + + /** Set to true during initialisation so ensure_thread doesn't fail. + * Defined in Engine.cpp + */ + static bool single_threaded; }; |