summaryrefslogtreecommitdiffstats
path: root/src/engine/ThreadManager.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/ThreadManager.hpp')
-rw-r--r--src/engine/ThreadManager.hpp14
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;
};