summaryrefslogtreecommitdiffstats
path: root/src/server/RunContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/RunContext.cpp')
-rw-r--r--src/server/RunContext.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/server/RunContext.cpp b/src/server/RunContext.cpp
index b2e3f269..5d5c9e33 100644
--- a/src/server/RunContext.cpp
+++ b/src/server/RunContext.cpp
@@ -18,6 +18,7 @@
#include "ingen/Log.hpp"
#include "ingen/URIMap.hpp"
+#include "BlockImpl.hpp"
#include "Broadcaster.hpp"
#include "BufferFactory.hpp"
#include "Engine.hpp"
@@ -141,20 +142,26 @@ RunContext::emit_notifications(FrameTime end)
}
void
-RunContext::claim_task(Task* task)
+RunContext::claim_task(BlockTask* task)
{
if ((_task = task)) {
_engine.signal_tasks_available();
}
}
-Task*
+RunContext::BlockTask*
RunContext::steal_task() const
{
return _engine.steal_task(_id + 1);
}
void
+RunContext::run_unit(BlockImpl* unit)
+{
+ unit->process(*this);
+}
+
+void
RunContext::set_priority(int priority)
{
if (_thread) {
@@ -185,7 +192,7 @@ void
RunContext::run()
{
while (_engine.wait_for_tasks()) {
- for (Task* t; (t = _engine.steal_task(0));) {
+ for (BlockTask* t; (t = _engine.steal_task(0));) {
t->run(*this);
}
}